ios – 设置UISearchBar的搜索字段背景图像更改填充

当我在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)];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...