55

如何更改iOS7中UISearchBar的背景颜色?如何更改iOS7中UISearchBar的背景颜色

enter image description here

不是灰色的,我想改变颜色像我UINavigationBar的

,如果我使用此代码,这是什么出来

searchBar.backgroundColor = [UIColor redColor]; 

enter image description here

那不是红颜色!!! 与导航栏的背景颜色完全相同的情况。

+0

这只是我或我看不到你的照片? –

回答

169

需要使用:

searchBar.barTintColor = [UIColor redColor]; 

enter image description here

所有的感谢!

+2

这是一种删除搜索栏中透明度的方法吗?因为颜色不是真的红的! –

+5

@AladdinGallas你只需将UISearchBar的半透明属性设置为NO,如下所示:'[searchbar setTranslucent:NO];' – Pavan

+0

我想在此栏中添加圆角?我怎样才能做到这一点? – Vishnu

2

如果在MainStoryBoard中定义了UISearchBar,只需单击该UISearchBar并查看您可以在右侧处理的选项。 如果你点击第四个选项卡(看起来像一个盾牌),那么你有一个Bar Tint选项。在那里你可以选择你想要的UISearchBar颜色。

如果不是这样,我想编程,你可以做这样的事情:

UISearchBar* sb =[[UISearchBar alloc] init]; 
    sb.backgroundColor=[UIColor redColor]; 

我希望这有助于!

+0

我更新了我的帖子 –

6

它是不是真的为我工作,或有时,如果你也试试这个

for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews]){ 
       if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"]) 
        view.alpha = 0; 

      } 
+1

if子句可以简单地为'if([view isKindOfClass:UISearchBarBackground)''。 – franklsf95

+0

@ franklsf95这不会起作用,因为它是一个无证类。 – jbouaziz

+0

@ chings228这很酷和smartass解决方案! –

45

设置背景图片的清晰的图像,你是好去。这也是pre-ios 7兼容的。

searchBar.backgroundImage = [[UIImage alloc] init] 
searchBar.backgroundColor = [UIColor redColor]; 
+2

这是一个非常好的答案使用clearColor如果你想在textField中使用白色的最小设计 – StackRunner

+0

男人花了我整整一个小时才找到你的高明解决方案。谢谢! – Skoua

+0

这就像一个魅力。谢谢! – Mak13

23

如果上述解决方案似乎并不那么努力确保您所设置的搜索栏样式最小

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal]; 

而对于简单的搜索栏

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal]; 

搜索栏样式也可以从界面生成器设置为最小