搜索栏在导航栏中时会更改颜色

searchbar changes color when in navigation bar

我在导航项的标题视图中添加了一个搜索栏。搜索正常,但是当使用导航控制器时,搜索栏的背景会改变颜色,如下所示

我唯一触摸颜色的地方是通过 xcode

更改情节提要中导航项的颜色

将搜索栏放在标题视图中的相关代码

_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
[_searchController.searchBar sizeToFit];
self.navigationItem.titleView = _searchController.searchBar;

是什么导致了这种颜色?

尝试使用

更改 bartint 颜色
[_searchController.searchBar setBarTintColor:[UIColor clearColor]];

但我得到了这个

还有不工作的东西

[_searchController.searchBar setBarTintColor:self.navigationController.navigationBar.tintColor];
_searchController.searchBar.backgroundColor = self.navigationController.navigationBar.tintColor;

backgroundColor

这个颜色好像和设置的有点不一样。用 redColor

看这里

需要设置UISearchBartint color.

UISearchBar *search=[[UISearchBar alloc]initWithFrame:CGRectMake(10, 20, 100, 20)];
[search setBarTintColor:[UIColor clearColor]];
search.backgroundImage=[UIImage new];
self.navigationItem.titleView=search;

现在导航栏如下图所示:

对于 Swift 用户,只需添加这两行 :-

searchBar.barTintColor = UIColor.clearColor()
searchBar.backgroundImage = UIImage()
self.navigationItem.titleView = searchBar