UISearchBar 在 iOS 的不同版本中,把 subviews 列出來看會發現 view 層次結構不同,而要去除背景主要是將 UISearchBarBackground 給 remove 掉,因此就要針對各個 iOS 的版本做點調整,如下所示:
for (UIView *view in self.searchBar.subviews)
{
iOS 7 以前:
if ([view isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
[view removeFromSuperview];
break;
}
iOS 7 含以後:
if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 0)
{
for (UIView *subView in view.subviews)
{
if ([subView isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
[subView removeFromSuperview];
break;
}
}
}
}
沒有留言:
張貼留言