长久以来被tintColor困惑,做了下面2点研究
一. 图片的tintColor
一个彩色图片,png或jpg或pdf,本来有自己的颜色.如图1-1
如果在 image asset处,选择Render As Template image ,如图1-2
那么显示的时候,这个图片的有颜色的部分就失去了原来的颜色,如图1-4,它们的颜色会随着所在的ImageView的tintColor变化了. (因为默认是蓝色的,所以显示出蓝色,这里还可以改变imageView或其父View的tintColor 如图1-3)
so, 可以这么理解, tintColor是一个视图的着色部分,如果视图被设置为template,就能看到tintColor,如果是原图,就没有tintColor
对UIButton和segment等控件来说,tintColor是它们"线条"的颜色,如:button的字的颜色,segment边框的颜色,等
对UINavigationBar,tab bars, toolbars, search bars, scope bars,UIProgressView,这些的背景色可以用barTintColor属性来处理.比较特殊一点,因为本来上说,tintColor不等于backgroundColor
参考文档:
http://www.cocoachina.com/ios/20150703/12363.html 讲述了tintColor
http://benbeng.leanote.com/post/4%E4%B8%AA%E4%BD%A0%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%84Asset-Catalog%E7%9A%84%E7%A7%98%E5%AF%86 讲述了image asset的4个技巧
以上两篇都是翻译的外国的博客
http://www.68idc.cn/help/buildlang/ask/20150124188072.html 讲述了tintColor和backgroundColor的区别