在iOS7.0之前,UISearchBar视图里直接包含UISearchBarBackground和UISearchBarTextField两个视图,在iOS7.0及之后,UISearchBar视图里包含的是一个UIView视图,UIView视图里才是 UISearchBarBackground和UISearchBarTextField两个视图。经多次试验,发现去除UISearchbar视图里的 UISearchBarBackground后UISearchBar的背景就透明了,代码如下:
for (UIView *view in self.searchBar.subviews) {
// for before iOS7.0
if ([view isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[view removeFromSuperview];
break;
}
// for later iOS7.0(include)
if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 0) {
[[view.subviews objectAtIndex:0] removeFromSuperview];
break;
}