如果直接采用? ??
? ?self.searchBar.backgroundColor = [UIColor redColor];
? ?self.searchBar.tintColor = [UIColor redColor];
可能會(huì)達(dá)不到預(yù)想的效果遵绰,所以就得采用其他方案了。
先看UISearchBar的層級(jí)結(jié)構(gòu),SearchBar里面包含的view下有三個(gè)控件,分別是“UIImageView類型的UISearchBarBackgroud”、“UITextField類型的UISearchBarTextField”鸵膏、“UIButton類型UINavigationButton”,所以就可以采用遍歷循環(huán)獲取到UISearchBar內(nèi)層的視圖,依次進(jìn)行修改
for (UIView *view in self.searchController.searchBar.subviews.lastObject.subviews) {
? ? if([view isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
? ? ? ? ????UIImageView*viewSearch = (UIImageView*)view;
? ? ? ? ????viewSearch.image= [UIImagecreateImageWithColor:[UIColorwhiteColor]];
? ? }else if ([view isKindOfClass:NSClassFromString(@"UISearchBarTextField")]){
????????????UITextField*textField = (UITextField*)view;
? ? ? ? ? ? textField.backgroundColor=? UIColorFromRGB(0xF5F5F5);
}else if ([view isKindOfClass:NSClassFromString(@"UINavigationButton")]){
????????????UIBotton*botton?= (UIBotton*)view;
????}
?}