在导航栏中为embedded的UISearchbar设置色调颜色
我有一个应用程序,整个用户界面有一个蓝色的色调主题。 我在初始视图中的导航栏中也有一个embedded式search栏。 我的应用程序的button文本颜色是白色的,并声明在应用程序委托使用:
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
问题是这会导致embedded式search栏在选中时隐藏光标,因为白色会影响search栏。 我试图用两种方法专门设置search栏的色调为[UIColor blueColor],但没有运气。 我尝试过的两个方法是参考UISearch栏:
[self.navigationController.searchDisplayController.searchBar setTintColor:[UIColor blueColor]];
和
[searchBar setTintColor:[UIColor blueColor]]
searchBar应正确引用。
我对这些网点做的任何事都根本影响到embedded式search栏。
有同样的问题。 将search栏embedded导航栏后,使用此代码解决此问题。
self.navigationItem.titleView.tintColor = [UIColor blueColor];
可能不是最好的解决scheme,但它的工作原理。
在iOS 7下(大概是这样),你可能要在你的导航和search栏上设置barTintColor
来改变包装的UI颜色。
[searchBar setBarTintColor:[UIColor blueColor]]
对于相同的外观,你会希望在iOS 7+中使用barTintColor
,并在之前使用tintColor
。 如果您尝试更改iOS 7中的tintColor
,则会更改您的光标颜色,导致您提到的“隐藏”光标问题。
如果你inheritance它,你也可以控制statusBarStyle。
import UIKit class SearchController: UISearchController { override func viewDidLoad() { super.viewDidLoad() searchBar.tintColor = UIColor.tintColor() searchBar.barTintColor = UIColor.backgroundColor() } override func preferredStatusBarStyle() -> UIStatusBarStyle { return .LightContent } }