如何获得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; 

这给我以下几点:

UITextField图像

正如你所看到的,尽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;