在SDK4.2以上的版本中,为UISearchBar增加了一个新的属性,叫做backgroundView,这样我就能够很容易的为UISearchBar添加背景颜色。但是SDK4.1以及更老的版本中没有这个属性,这样就没法保证界面的整体效果。最近我发现了一个比较好,也比较使用的小技巧,可以轻松搞定这个问题。就是将UISearchBar的背景移除,然后在UISearchBar的下面放上一张我们所需要的图片,就能实现你要的效果。
UISearchBar *_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
_searchBar.tintColor = [UIColor colorWithRed:0.72 green:0.0 blue:0.0 alpha: 1.0];
_searchBar.backgroundColor=[UIColor clearColor];
for (UIView *subview in _searchBar.subviews)
{
if ([subview isKindOfClass: NSClassFromString(@"UISearchBarBackground")])
{
[subview removeFromSuperview];
break;
}
}
UISearchBar *_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
_searchBar.tintColor = [UIColor colorWithRed:0.72 green:0.0 blue:0.0 alpha: 1.0];
_searchBar.backgroundColor=[UIColor clearColor];
for (UIView *subview in _searchBar.subviews)
{
if ([subview isKindOfClass: NSClassFromString(@"UISearchBarBackground")])
{
[subview removeFromSuperview];
break;
}
}