在导航栏中为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 ,则会更改您的光标颜色,导致您提到的“隐藏”光标问题。

iOS 7中的UISearchBar上的tintColor和barTintColor之间的区别!

如果你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 } } 

在这里输入图像说明