美文网首页
导航栏上的UISearchBar无法修改"clearButton

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

作者: 彭柯柱 | 来源:发表于2017-01-10 19:43 被阅读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属性使得输入框右侧的按钮重新渲染了,所以尽量不要将最上边的两种属性赋值,这个坑埋得有点深,差点坑哭,不说了,继续撸代码去了。

    相关文章

      网友评论

          本文标题:导航栏上的UISearchBar无法修改"clearButton

          本文链接:https://www.haomeiwen.com/subject/rlhlbttx.html