[关闭]
@zhangyuhangk 2015-07-23T02:46:50.000000Z 字数 521 阅读 1462

关于tintColor

iOS


iOS7为UIView增加了一个属性

  1. var tintColor: UIColor!

这个值影响到哪些地方的颜色呢?
不同的控件影响不一样:对于UITextField,这个值影响它的光标颜色;对于toolbar,则影响上面的bar button item字体颜色。
(改变UITextField和UILabel的字体颜色要设置textColor属性)
各个控件大家可以自行测试~~

它的类型是自动解包的Optional类型
没有显式进行设置的情况下,它其实默认是个nil,但取它的值它并不会返回nil,它会取super view的tintColor。而super view也没有设置这个值的话就会一路往上,一直找到window。如果都没有设置的话,就会返回系统定义的默认值。
所以,当需要设置改变整个界面的颜色时(比如实现换肤功能),就不需要单独设置每个控件的tintColor,只要直接设置整个view的tintColor就行了。
如果有自绘控件,想要相应地改变颜色,则只需重写tintColorDidChange函数即可。

  1. override func tintColorDidChange() {
  2. setNeedsDisplay() // redraw
  3. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注