美文网首页
3分钟理解tintColor是个啥玩意

3分钟理解tintColor是个啥玩意

作者: anny_4243 | 来源:发表于2017-02-07 16:53 被阅读46次

    我讲到小概念,喜欢用简明的语句描述清楚。今天描述一下tintColor,喜欢读长篇大论的,我在后面附了传送门。

    1.所有的常用控件,都有tintColor属性。其中,UIView也有这个属性,可想而知继承UIView的控件也都有tintColor了。

    2.使用场景:当父视图更改了tintColor为red,那么它所有的一级子视图tintColor全部为red,除非你主动设置过子视图的tintColor。它再往下的子视图的tintColor则遵循直接父视图的tintColor 。

    3.如果没有给任何视图指定过tintColor,系统会默认给原生控件指定一个tintColor,比如UIButton的title和UIProgressView的progress都是淡蓝色。

    注意是原生控件,如果你的控件是自定义的,比如UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];这样初始化来的,系统就没有为Button 的title颜色指定为默认的蓝色tintColor。

    如果你要使用tintColor,需要子类化它,然后在- (void)tintColorDidChange里面写上[self setTitleColor:self.tintColor forState:UIControlStateNormal],就OK了。

    所以我猜想,系统默认将控件的某些颜色指定为tintColor的情况下,是因为系统控件的源码里面有上面这句set...Color: self.tintColor 。

    相关文章

      网友评论

          本文标题:3分钟理解tintColor是个啥玩意

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