UISearchbar去除背景色的方法
通常使用UISearchbar都需要去除其背景色来与自己的界面风格保持协调,但是UISearchbar的设计随着iOS版本的升级不断地在发生着变化。
在iOS7.0之前,UISearchbar视图里直接包含UISearchBarBackground和UISearchBarTextField两个视图,在iOS7.0及之后,UISearchbar视图里包含的是一个UIView视图,UIView视图里才是UISearchBarBackground和UISearchBarTextField两个视图
iOS7以后的背景设置,所以我们可以根据通过UIsearchbar的子视图设置我们想要的颜色
for (UIView *view in self.searchBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 0) {
for (UIView *subView in view.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]){
//设置输入框
[subView setBackgroundColor:[UIColor blackColor]];
[(UITextField*)subView setTextColor:[UIColor whiteColor];
break;
}
}
}
}