UISearchBar 创建的时候 自带一个 灰色背景 很多时候我们需要 更改这个背景颜色
直接 searchBar.backgroundColor = [UIColor whiteColor]; 这样设置是 无效的
在对 UISearchBar 设置背景颜色的时候 需要先把 UISearchBarBarBackground 移除
UISearchBarBarBackground 是一个 UIImageView对象 覆盖在 backgroundColor 上面
所以直接设置背景颜色 是无效的
移除UISearchBarBarBackground 对象代码:
for(inti = 0;i <_searchBar.subviews.count;i++){
UIView* backView =_searchBar.subviews[i];
if([backViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {
[backViewremoveFromSuperview];
[_searchBar setBackgroundColor:[UIColor clearColor]];
break;
}else{
NSArray* arr =_searchBar.subviews[i].subviews;
for(intj =0;j
UIView* barView = arr[i];
if([barViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {
[barViewremoveFromSuperview];
[_searchBar setBackgroundColor:[UIColor clearColor]];
break;
}
}
}
}
移除之后 再进行 [_searchBar setBackgroundColor:[UIColor clearColor]]; 处理 即可 有效
网友评论