美文网首页
iOS如何更改UIBarButtonItem的文本颜色无标题文章

iOS如何更改UIBarButtonItem的文本颜色无标题文章

作者: yymyb | 来源:发表于2016-03-14 22:03 被阅读434次

        UINavigationBar可以通过设置tintColor来改变导航条的背景颜色,但是由于UIBarButtonItem没有文本颜色设置功能,所以如果将UINavigationBar的tintColor设置成whiteColor的话,文字显示就不怎么清晰了。

        网上一般建议通过建立一个UILabel,赋值给UINavigationItem的titleView属性,改变标题的颜色。建立一个UIButton,通过UIBarButtonItem的initWithCustomView方法创建UIBarButtonItem对象

    效果不尽人意吧。当然可以通过设置背景图片什么的,加强效果。但总体来说不如只改变文本颜色方便。

    iOS的Objective C提供了runtime函数,定义在objc目录下面。通过这些运行时库函数可以对系统定义的对象进行修改,比如增加方法,修改方法的代码地址....通过枚举UINavigationBar的子视图,发现显示UIBarButtonItem内容的是UINavigationButton,它有一个子视图类型为UIButtonLabel,UIButtonLabel继承自UILabel,UIButtonLabel类型本身没有重载setTextColor:方法,因此调用class_addMethod给UIButtonLabel类型增加一个setTextColor:方法,然后把传进来的color强制改成其他颜色,再调用UILabel的setTextColor:方法即可。

    相关文章

      网友评论

          本文标题:iOS如何更改UIBarButtonItem的文本颜色无标题文章

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