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

时间:2015-03-02 09:15:22

标签: ios uinavigationcontroller uisearchbar

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

我触摸颜色的唯一地方是通过xcode更改故事板中导航项的颜色

将搜索栏放在titleview中的相关代码

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

导致这种颜色的原因是什么?

enter image description here

尝试使用

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

但我得到了这个enter image description here

还有一些不起作用的东西是

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

backgroundColor

似乎这种颜色不同于设置。请参阅此处的redColor

enter image description here

2 个答案:

答案 0 :(得分:14)

需要设置UISearchBar tint color

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

现在导航栏看起来如下图所示:

enter image description here

答案 1 :(得分:4)

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

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