@zhangyuhangk
2015-07-23T02:46:50.000000Z
字数 521
阅读 1462
iOS
iOS7为UIView增加了一个属性
var tintColor: UIColor!
这个值影响到哪些地方的颜色呢?
不同的控件影响不一样:对于UITextField,这个值影响它的光标颜色;对于toolbar,则影响上面的bar button item字体颜色。
(改变UITextField和UILabel的字体颜色要设置textColor属性)
各个控件大家可以自行测试~~
它的类型是自动解包的Optional类型
没有显式进行设置的情况下,它其实默认是个nil,但取它的值它并不会返回nil,它会取super view的tintColor。而super view也没有设置这个值的话就会一路往上,一直找到window。如果都没有设置的话,就会返回系统定义的默认值。
所以,当需要设置改变整个界面的颜色时(比如实现换肤功能),就不需要单独设置每个控件的tintColor,只要直接设置整个view的tintColor就行了。
如果有自绘控件,想要相应地改变颜色,则只需重写tintColorDidChange
函数即可。
override func tintColorDidChange() {
setNeedsDisplay() // redraw
}