iPad / iPhone uiSearchbar透明背景

时间:2011-02-09 11:04:48

标签: iphone ipad uisearchbar

我知道这些问题之前已被问及(并已解决),但这对我不起作用。 事实上,我已经解决了这个问题,但是这个问题突然冒出来让我感到震惊。

我无法设置UISearchBar透明的背景。 我一直在使用:

searchBar.backgroundColor = [UIColor clearColor];   
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];

并且效果很好......但突然停了下来。可能是因为我升级了我的xcode版本,但我不确定。 我已经花了几个小时调查这个.. 有人在那里这样做吗?请指出我正确的方向。 谢谢堆!

最好的问候 Ť

3 个答案:

答案 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;