关于UISearchBar私有属性的使用

    最近在项目中使用到UISearchBar,  遇到一些坑,发现用UISearchBar私有属性去做一些事情,可以让UISearchBar样式风格达到自己想到的效果。Talk is cheap, 废话不多说,直接上代码。 

 1.  seachBar创建出来默认是有灰色背景的, 可以用KVC获取UISearchBar的私有属性_background, 移除掉灰色背景就会消失

    UIView *searchBarBg = [_searchBar valueForKeyPath:@"_background"];

    [searchBarBg removeFromSuperview];

2.  获取UISearchBar的文本框的两种方法:

方法一: 还是KVC, 通过_searchField属性直接获取

UITextField *searchTextField = [_searchBar valueForKeyPath:@"_searchField"];

    searchTextField.font = kFontSize(15.0);

    searchTextField.inputAccessoryView = [MTFKeyboardExtendsionView createView];

方法二: 通过subViews 间接获取, 这个方法有弊端,使用之前必须设置_searchBar的barTintColor才有效

 _searchBar.barTintColor = kWhiteColor;

 UITextField *searchTextField = [[[_searchBar.subviews firstObject] subviews] lastObject];

获取到textField之后就可以做很多事情了,比如font ,  inputAccessoryView等。

本文只是简单的做个记录,有不足之处大家多多补充和指正。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容