我知道这些问题之前已被问及(并已解决),但这对我不起作用。 事实上,我已经解决了这个问题,但是这个问题突然冒出来让我感到震惊。
我无法设置UISearchBar
透明的背景。
我一直在使用:
searchBar.backgroundColor = [UIColor clearColor];
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];
并且效果很好......但突然停了下来。可能是因为我升级了我的xcode版本,但我不确定。 我已经花了几个小时调查这个.. 有人在那里这样做吗?请指出我正确的方向。 谢谢堆!
最好的问候 Ť答案 0 :(得分:10)
尝试循环浏览子视图并寻找合适的类:
for (UIView *subview in searchBar.subviews) {
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[subview removeFromSuperview];
break;
}
}
我不确定,但我认为你不能认为索引0是背景视图。 上面的例子对我有用。
答案 1 :(得分:0)
它仍然适用于我,所以也许你的代码中的其他东西会搞砸它。你确定searchBar设置正确(IB中的连接插座,视图初始化后调用等等)? 最好的方法是打印出[searchBar.subviews objectAtIndex:0]的内容,它应该是一个UISearchBarBackground对象。 顺便说一下,既然Apple可以随时更改UISearchBar视图层次结构,那么最好进行一些检查:searchBar.subviews.count和
if ([[searchBar.subviews objectAtIndex:0] class] == NSClassFromString(@"UISearchBarBackground")) ...
在致电之前。
答案 2 :(得分:0)
您只需将searchBarStyle属性更改为UISearchBarStyleMinimal即可。默认情况下,它是UISearchBarStyleProminent。您可以在故事板或代码中更改它,如下所示。
self.yourSearBar.searchBarStyle = UISearchBarStyleMinimal;