如何在 iOS 7 的 UITextField 中添加带有缩进的图像 UIImage?
Posted
技术标签:
【中文标题】如何在 iOS 7 的 UITextField 中添加带有缩进的图像 UIImage?【英文标题】:How to add image UIImage with indent in UITextField in iOS 7? 【发布时间】:2014-09-23 10:26:14 【问题描述】:我有一个UITextField
,我想在其中添加一个图像到左侧。我使用在UITextField
的leftView
属性中设置的UIImageView
执行此操作。图像在图像视图中调整为适当的大小。问题是它粘在边界上。如何设置图像的左缩进。我想一种解决方案是在图像的左侧设置一些空白区域,但我想使用缩进。另外我想在图片后缩进一些,所以文字不是那么接近它。
我使用以下代码:
[textField setLeftViewMode:UITextFieldViewModeAlways];
UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 37, 20)];
imageView1.image = [UIImage imageNamed:@"custom_image"];
textField.leftView = imageView1;
【问题讨论】:
而不是子查看,将文本文件(无边框)放在图像视图上 【参考方案1】:您可以将 UIImageview 框架设置为比原始 UIImage 更多,并将 UIImageview contentMode 属性设置为 center。 请参考下面的答案。
UIImageView *imgSearch=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 32, 28)]; // Set frame as per space required around icon
[imgSearch setImage:[UIImage imageNamed:@"search.png"]];
[imgSearch setContentMode:UIViewContentModeCenter];// Set content mode centre
self.tfSearch.leftView=imgSearch;
self.tfSearch.leftViewMode=UITextFieldViewModeAlways;
【讨论】:
【参考方案2】:您需要子类 UITextField 并在其中实现
- (CGRect)leftViewRectForBounds:(CGRect)bounds
【讨论】:
【参考方案3】:也许你应该有一个子类 UITextField 并覆盖
- (CGRect)leftViewRectForBounds:(CGRect)bounds;
- (void)drawTextInRect:(CGRect)rect;
这些将改变 leftView 的矩形。
【讨论】:
以上是关于如何在 iOS 7 的 UITextField 中添加带有缩进的图像 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 iOS 7 创建弹出式 uipicker 和 uitextfield?
UITextField - (void)drawPlaceholderInRect:(CGRect)rect 在 iOS 7 中返回不同的 CGRect 高度