当我在UI
Image上设置一个搜索字段背景图像时,选定的更改后,搜索栏中放大镜和占位符文本之间的填充.
使用默认背景:
有自定义背景:
这种变化是由这两条线引起的:
UIImage *colorImage = [UIImage imageWithColor:[UIColor grayColor] size:CGSizeMake(28,28)]; [self setSearchFieldBackgroundImage:[colorImage imageWithRoundedCorners:5] forState:UIControlStateNormal];
imageWithRoundedCorners:是一种将方法简单地绘制到具有角半径的CALayer上的类别方法,然后从图形上下文创建一个UIImage.
为什么会这样呢,我该如何避免呢?我尝试传递明确可调整大小的图像,但是没有效果.
解决方法
奇怪的是,它重置它,但是您可以使用这样的东西来设置背景图像后的喜好. searchTextPositionAdjustment是UISearchBar上的一个属性,可以完美地工作. 8.0似乎是默认的,但你可以将它设置为任何你喜欢的.
[self.searchBar setSearchFieldBackgroundImage:[self imageWithColor:[UIColor grayColor] andSize:CGSizeMake(28.0,28.0)] forState:UIControlStateNormal]; [self.searchBar setSearchTextPositionAdjustment:UIOffsetMake(8.0,0.0)];