我们项目需要自定义SearchBar外观与app主题保持一致,而且目前我们公司适配到iOS7,所以需要修改默认的外观。
![](https://img.haomeiwen.com/i1720694/f9c23ddb3f8ff5d7.png)
1.使用控件:
iOS8之前:UISearchBar+UISearchDisplayController
iOS8之后:UISearchController
只需要将UISearchController的searchBar添加到self.view上即可;
2.获取UISearchBar子视图,自定义UISearchBarBackground、UISearchBarTextField等的样式:
iOS8之前:[searchBar subviews]
iOS8之后:[[searchBar subviews][0]subviews]
ps:在获取cancel按钮时,一定要写上searchBar.showsCancelButton = YES;
![](https://img.haomeiwen.com/i1720694/cd41475b6def798e.png)
3.设置输入框背景颜色
我一直以为要用上图1的方法,修改searchBar的background,然后修改textfield的背景颜色。后来看到某条博客,发现只要用这一行代码就可以:
![](https://img.haomeiwen.com/i1720694/60b547f1b278c297.png)
4.修改取消按钮的颜色
我尝试用图1的方法修改,但是发现我只能修改取消按钮显示的内容即title,却改变不了颜色,后来发现只需要修改searchBar的tintColor。
网友评论