如何在 iOS7 中更改 UISearchBar 的背景颜色
Posted
技术标签:
【中文标题】如何在 iOS7 中更改 UISearchBar 的背景颜色【英文标题】:How to change background color of UISearchBar in iOS7 【发布时间】:2013-10-18 12:39:32 【问题描述】:ios7中如何改变UISearchBar的背景颜色?
不是灰色,我想像我的 uinavigationbar 一样改变颜色
如果我使用此代码,那就是结果
searchBar.backgroundColor = [UIColor redColor];
那不是红色!!! 这与导航栏的背景颜色完全相同。
【问题讨论】:
这只是我还是我看不到你的照片? 【参考方案1】:需要使用:
searchBar.barTintColor = [UIColor redColor];
谢谢!
【讨论】:
这是一种消除搜索栏透明度的方法吗?因为颜色不是真正的红色! @AladdinGallas 您只需将 UISearchBar 的半透明属性设置为 NO,如下所示:[searchbar setTranslucent:NO];
我想给这个栏添加圆角?我该怎么做?
这确实给了条一个红色的色调,但是这个色调仍然有透明度/alpha。有没有办法摆脱它并获得纯色作为色调?
将搜索栏样式设置为 UISearchBarStyleMinimal,而不是得到纯色。【参考方案2】:
将背景图像设置为清晰的图像,一切顺利。这也兼容 pre-ios 7。
searchBar.backgroundImage = [[UIImage alloc] init]
searchBar.backgroundColor = [UIColor redColor];
【讨论】:
这是一个非常好的答案,如果您想在 textField 中使用白色的最小设计,请使用 clearColor【参考方案3】:如果上述解决方案似乎不起作用,请确保您已将搜索栏样式设置为 Minimal。
[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];
对于简单的搜索栏
[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal];
搜索栏样式也可以从界面生成器设置为Minimal。
【讨论】:
【参考方案4】:这对我来说不是真的有用,或者有时,如果你也一样,试试这个
for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews])
if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"])
view.alpha = 0;
【讨论】:
if 子句可以简单地是if ([view isKindOfClass: UISearchBarBackground)
。
@franklsf95 它不起作用,因为它是一个未记录的类。【参考方案5】:
如果 UISearchBar 是在 MainStoryBoard 中定义的,只需单击该 UISearchBar 并查看右侧可以处理的选项。 在那里,如果您单击第四个选项卡(看起来像盾牌的选项卡),您将获得一个 Bar Tint 选项。在那里你可以选择你想要的 UISearchBar 颜色。
如果没有,我猜你可以通过编程方式执行以下操作:
UISearchBar* sb =[[UISearchBar alloc] init];
sb.backgroundColor=[UIColor redColor];
我希望这会有所帮助!
【讨论】:
以上是关于如何在 iOS7 中更改 UISearchBar 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS7 中更改 UISearchBar 的 inputView?
如何在 iOS 7 的 UISearchBar 中更改位置或隐藏放大镜图标?