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

2017-01-10  本文已影响0人  彭柯柱

最近碰到一个比较头疼的问题,导航栏上的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属性使得输入框右侧的按钮重新渲染了,所以尽量不要将最上边的两种属性赋值,这个坑埋得有点深,差点坑哭,不说了,继续撸代码去了。

上一篇下一篇

猜你喜欢

热点阅读