我们项目需要自定义SearchBar外观与app主题保持一致,而且目前我们公司适配到iOS7,所以需要修改默认的外观。
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;
3.设置输入框背景颜色
我一直以为要用上图1的方法,修改searchBar的background,然后修改textfield的背景颜色。后来看到某条博客,发现只要用这一行代码就可以:
4.修改取消按钮的颜色
我尝试用图1的方法修改,但是发现我只能修改取消按钮显示的内容即title,却改变不了颜色,后来发现只需要修改searchBar的tintColor。