导航栏上的UISearchBar无法修改"clearButton"属性

最近碰到一个比较头疼的问题,导航栏上的searchbar无论如何都不能改变“clearButton”(也就是输入框右边的x)的image,最终发现问题的所在,当你设置了以下属性:

[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
//或者设置了
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

然后想通过:

  UITextField *field = [searchBar valueForKey:@"_searchField"];
  UIButton *btn = [field valueForKey:@"_clearButton"];
  [btn setImage:[UIImage imageNamed:@"clear_icon"] forState:UIControlStateNormal];
  [btn setImage:[UIImage imageNamed:@"clear_icon"] forState:UIControlStateHighlighted];

这种方式来改变那个"clearButton"的时候就不会奏效,内部机制暂时不清楚,可能是因为设置navigationBar的tintColor属性使得输入框右侧的按钮重新渲染了,所以尽量不要将最上边的两种属性赋值,这个坑埋得有点深,差点坑哭,不说了,继续撸代码去了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,254评论 4 61
  • UIWindow 初始化: self.window= [[UIWindowalloc]initWithFrame:...
    Sunny_Fight阅读 1,051评论 0 1
  • 就像某位网友的留言,电影一开始,就有一种不好的感觉,觉得为什么这么粗糙,不会到最后都这样吧。 周星驰上一部电影,西...
    明义阅读 437评论 1 0