
80
|
第
2
章
我们也可以通过属性面板来设置绝大多数视图的
tint color
属性。
讨论
大部分
(但不是全部)
控件都可以被定制化。定制化控件外观有两种主要的方式:
•
修改
Tint Color
属性,可以改变控件的整体颜色。
•
修改背景图片,可以通过位图来改变控件的外观。
修改
Tint Color
属性,可以调用
setTintColor:
方法。有的控件只有一个
Tint Color
属性,则调用
setTintColor:
方法就可以了。而有的控件可能会有多个
Tint Color
属性,我们需要分别设置它们。例如
UIProgressView
控件,我们需要这样做:
self.progressView.progressTintColor = UIColor.orange
我们可以为某种类型的控件统一设置
Tint Color
属性。也就是使用
Appearance
Proxy
。
Appearance Proxy
是某种对象,从拥有系统外观控制属性的某一个
class
中
获得这个对象,你可以通过它来设置属于这一类控件的所有对象的外观属性(如
Tint Color
和背景图片),通过这种方式修改的属性对所有这一类的实例都有效。
例如,如果想将所有
Progress View
的
Tint Color
都设置为紫色,则可以这样做:
UIProgressView.appearance().progressTintColor = UIColor.purple
同理,你还可以修改所有
Navigation Bar
的背景图片:
UINavigationBar.appearance() ...