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

dev*_*laz 71 objective-c background-color uisearchbar uisearchdisplaycontroller ios7

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

在此输入图像描述

不是灰色,我想像我的uinavigationbar一样改变颜色

如果我使用此代码,那就是出来的

searchBar.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

那不是红色!!! 这与导航栏的背景颜色完全相同.

dev*_*laz 182

需要使用:

searchBar.barTintColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢!

  • @AladdinGallas你只需将UISearchBar的半透明属性设置为NO就像这样:`[searchbar setTranslucent:NO];` (5认同)
  • 将搜索栏样式设置为UISearchBarStyleMinimal,而不是获得纯色. (4认同)
  • 这是一种删除搜索栏中透明度的方法吗?因为颜色不是很红! (3认同)

Vad*_*off 56

将背景图像设置为清晰的图像,您就可以开始使用了.这也是pre-ios 7兼容.

searchBar.backgroundImage = [[UIImage alloc] init]
searchBar.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

  • 如果你想在textField中使用白色的最小设计,那么使用clearColor是一个非常好的答案 (3认同)

zee*_*wan 31

如果上述解决方案似乎不起作用,请确保将搜索栏样式设置为Minimal.

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];
Run Code Online (Sandbox Code Playgroud)

而对于简单的searchBar

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal];
Run Code Online (Sandbox Code Playgroud)

SearchBar Style也可以从界面构建器设置为Minimal.


chi*_*228 6

它对我来说不是真的有用,或者有时,如果你也是这样,试试这个

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

            }
Run Code Online (Sandbox Code Playgroud)