【发布时间】:2014-04-14 12:16:12
【问题描述】:
在 iOS7.0.3 - 7.0.6 上,我的 searchBar 颜色是金色/黄色,如下所示:
但在 iOS 7.1 上,颜色变成了这样:
我设置了
searchBar.tintColor = [UIColor clearColor];
searchBar.backgroundColor = goldColor;
searchBar.tintColor = [UIColor blackColor];
我尝试了很多方法,但都失败了。谁能弄清楚 iOS 7.1 有哪些变化?
============== 我的修复================
我通过覆盖 searchBar 上的一个视图并将搜索文本作为子视图添加到这个新视图上来解决这个问题。
需要指出的是,金色状态栏是searchBar的一个子View,它的frame是CGRectMake(0, -20, 320, 20),它的背景颜色是金色。
一开始我是这样设置的:
_searchBar.translucent = YES;
_searchBar.scopeBarBackgroundImage = [self imageWithColor:UWGold];
看起来像这样:
然后,我将视图展开覆盖状态栏,我更改了视图的 frame.size.height + searchBar 的高度,然后使用此行:
UITextField *textSearchField = [_searchBar valueForKey:@"_searchField"];
获取 textSearchField,然后将此 textSearchField 添加到封面视图。
最后,searchBar 和 iOS 7.0 上的完全一样
这不是一个好方法,我需要弄清楚 iOS 7.1 上的哪些变化并使用正确的方法来实现。
【问题讨论】:
-
这里有同样的问题。也在等待一个好的解决方法。也许这是一个错误?
-
我不知道...我的 tabBar 颜色在 7.0 和 7.1 上也不同。也许这与 7.1 新引入的辅助功能中的“深色”有关?
-
即使是这样,只要在我的情况下将其关闭,它也不应该影响应用程序。我仍然认为这是一个错误,你会向 Apple 报告吗?
-
小心
[_searchBar valueForKey:@"_searchField"]。它正在访问一个私有实例变量,Apple 可能不喜欢。
标签: ios ios7 uisearchbar uitabbar