如何获得UITextField leftView图像左填充?
我将UIImageView
设置为UITextField
上的leftView
,如下所示:
UIImageView *envelopeView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.height*.1, self.height*.1)]; envelopeView.image = [UIImage imageNamed:@"envelope.png"]; envelopeView.contentMode = UIViewContentModeScaleAspectFit; envelopeView.bounds = CGRectInset(envelopeView.frame, 15, 10); self.emailAddress.leftView = envelopeView; self.emailAddress.leftViewMode = UITextFieldViewModeAlways;
这给我以下几点:
正如你所看到的,尽pipe我试图设置一个插入图像,但图像的左边尺寸直到button的左边。 我怎样才能把这个信封移动到四面都填充?
更新:我尝试了如此改变UIImageView
框架的build议答案,但信封仍排列在UITextField
的边界左侧:
CGFloat padding = 20; UIImageView *envelopeView = [[UIImageView alloc] initWithFrame:CGRectMake(3*padding, padding, self.height*.1-padding, self.height*.1-padding)];
你可以简单地试试这个:
UIImageView *envelopeView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 0, 30, 30)]; envelopeView.image = [UIImage imageNamed:@"comment-128.png"]; envelopeView.contentMode = UIViewContentModeScaleAspectFit; UIView *test= [[UIView alloc]initWithFrame:CGRectMake(20, 0, 30, 30)]; [test addSubview:envelopeView]; [self.textField.leftView setFrame:envelopeView.frame]; self.textField.leftView =test; self.textField.leftViewMode = UITextFieldViewModeAlways;
对于Swift 3用户
这是什么对我有用:
extension UITextField { /// set icon of 20x20 with left padding of 8px func setLeftIcon(_ icon: UIImage) { let padding = 8 let size = 20 let outerView = UIView(frame: CGRect(x: 0, y: 0, width: size+padding, height: size) ) let iconView = UIImageView(frame: CGRect(x: padding, y: 0, width: size, height: size)) iconView.image = icon outerView.addSubview(iconView) leftView = outerView leftViewMode = .always } }
testing:
txOrigin.setLeftIcon(icon_location)
结果:
你可以使用这个。 根据你的需要改变你的框架。
NSTextAttachment* placeholderImageTextAttachment = [[NSTextAttachment alloc] init]; placeholderImageTextAttachment.image = [UIImage imageNamed:@"Search"]; placeholderImageTextAttachment.bounds = CGRectMake(0, -2, 16, 16); NSMutableAttributedString* placeholderImageString = [[NSAttributedString attributedStringWithAttachment:placeholderImageTextAttachment] mutableCopy]; NSMutableAttributedString* placeholderString = [[NSMutableAttributedString alloc] initWithString:NSLocalizedString(@" Search", nil)]; [placeholderImageString appendAttributedString:placeholderString]; _txtFieldSearch.attributedPlaceholder = placeholderImageString; _txtFieldSearch.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;