app开发(xcode原型- -)学习笔记 #4 Tint Color

自己的小作品研习的时候并没有太注意Tint Color这个东西
主要是在教程中反复有提醒设置tint color的部分就照做了,也没细致研究
但是公司的产品上周六居然碰到了下方菜单栏图标选中变色的问题
突然想到了这个发现可能就是tint color的设置
虽然某少年给我演示了代码并且说”没有用的”…但是我觉得…啊…其实应该是还没有研究透彻吧
自己尽管也不太明了,先找一些资料备留
总觉得这个小东西其实也不简单的说

在iOS 7后,UIView新增加了一个tintColor属性,这个属性定义了一个非默认的着色颜色值,其值的设置会影响到以视图为根视图的整个视图层次结构。它主要是应用到诸如app图标、导航栏、按钮等一些控件上,以获取一些有意思的视觉效果。

tintColor属性的声明如下:

1
var tintColor: UIColor!

默认情况下,一个视图的tintColor是为nil的,这意味着视图将使用父视图的tint color值。当我们指定了一个视图的tintColor后,这个色值会自动传播到视图层次结构(以当前视图为根视图)中所有的子视图上。如果系统在视图层次结构中没有找到一个非默认的tintColor值,则会使用系统定义的颜色值(蓝色,RGB值为[0,0.478431,1],我们可以在IB中看到这个颜色)。因此,这个值总是会返回一个颜色值,即我们没有指定它。

与tintColor属性相关的还有个tintAdjustmentMode属性,它是一个枚举值,定义了tint color的调整模式。其声明如下:

1
var tintAdjustmentMode: UIViewTintAdjustmentMode

枚举UIViewTintAdjustmentMode的定义如下:

1
2
3
4
5
enum UIViewTintAdjustmentMode : Int {
    case Automatic          // 视图的着色调整模式与父视图一致
    case Normal             // 视图的tintColor属性返回完全未修改的视图着色颜色
    case Dimmed             // 视图的tintColor属性返回一个去饱和度的、变暗的视图着色颜色
}

因此,当tintAdjustmentMode属性设置为Dimmed时,tintColor的颜色值会自动变暗。而如果我们在视图层次结构中没有找到默认值,则该值默认是Normal。

与tintColor相关的还有一个tintColorDidChange方法,其声明如下:

1
func tintColorDidChange()

这个方法会在视图的tintColor或tintAdjustmentMode属性改变时自动调用。另外,如果当前视图的父视图的tintColor或tintAdjustmentMode属性改变时,也会调用这个方法。我们可以在这个方法中根据需要去刷新我们的视图。

Tint Color的色彩理论解说: https://en.wikipedia.org/wiki/Tints_and_shades

一篇详解: https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming

简单的设置规则: http://www.ioscreator.com/tutorials/ios-7-views-setting-tint-color

开发者官方相关内容: https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/AppearanceCustomization.html

一个视频教程: https://teamtreehouse.com/library/ios-foundations/appearance/tint-color

Google+Sina WeiboShare
Tags: , ,

TrackBack

TrackBack URL for this entry:
http://blog.vash.cn/wp-trackback.php?p=1959

Post a comment

You must be logged in to post a comment.

  • RSS VASH ^ ^

  • 越来越多的分类

  • On Pinning

  • 幫vash喂小鱼

  • 标签云朵

  • 博客状态

    • 访问页面总数:589959
    • 唯一访问者:194346
    • 最近24小时内访问页面总数:393
    • 最近24小时内唯一访问者:68
  • 大家最近說的