UIView的tintColor是个啥

2017-12-05  本文已影响0人  多来猫

与backgroundColor的区别

UIView有一个设置背景色的backgroundColor属性,但是在iOS7上又新增了一个tintColor,这两个有什么区别呢?

backgroundColor顾名思义就是背景颜色
backgroundColor是不能向子视图传递的

tintColor是描述线条轮廓的一种颜色
tintColor具有向子视图传递的特性

相关的属性与方法

tintColor相关的属性和方法有

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

- (void)tintColorDidChange;

tintAdjustmentMode的取值有

UIViewTintAdjustmentModeAutomatic, // 视图的着色调整模式与父视图一致
UIViewTintAdjustmentModeNormal,    // 视图的tintColor属性返回完全未修改的视图着色颜色
UIViewTintAdjustmentModeDimmed,    // 视图的tintColor属性返回一个变暗的颜色

tintColorDidChange这个方法会在自己和父视图的tintColor和tintAdjustmentMode改变时调用。

tintColor的使用

对UIView设置tintColor后只能向下传递,在当前界面并没有效果,但能影响子视图中的UIButtonUISliderViewUISwitchUIProgressViewUIImageViewUIToolbarUIStepper、等

简单粗暴理解

设置一个tintColorCALayer来进行绘制

参考资料:iOS tintColor解析
参考代码:iOS7-day-by-day

上一篇 下一篇

猜你喜欢

热点阅读