全域性修改控制元件的顏色 UIView 中有一個 tintColor 屬性,該屬性會在 view hierarchy 中傳遞下去。比如 window 的 tintColor 為紅色,那麼其 subviews 的 tintColor 都會是紅色的。並且還可以透過 UIAppearance 中的來對控制元件進行全域性外觀設定: UIButton.appearance().tintColor = UIColor.magentaColor() 在 iOS 9 中還新增了一個修改「區域性外觀」的 API~ UIButton.appearanceWhenContainedInInstancesOfClasses([MyView.self]).tintColor = UIColor.cyanColor() 修改圖片的顏色 當然 app 中除了純色的控制元件之外還有各種圖片。 UIImage 有一項屬性叫做 renderingMode ,可以設定為:
1)AlwaysOriginal讓圖片顯示為應有的顏色。
2)AlwaysTemplate使圖片顯示為模版模式,無視其顏色。
3)Automatic 這項是預設的。大多數情況下一張圖片放在系統控制元件中會顯示其應有的顏色,但有的情況下其顏色會被無視,比如在 UITabBarItem 中的圖片。 利用這個屬性我們就可以將 app 中的圖片也修改為配合主題的顏色:let templateImage = image?.imageWithRenderingMode(.AlwaysTemplate) templateImage.tintColor = myColor() 但每次使用圖片都這樣程式碼設定一次又很麻煩,不過幸運的是我們可以直接在 Assets.xcassets 中設定圖片的屬性:
全域性修改控制元件的顏色 UIView 中有一個 tintColor 屬性,該屬性會在 view hierarchy 中傳遞下去。比如 window 的 tintColor 為紅色,那麼其 subviews 的 tintColor 都會是紅色的。並且還可以透過 UIAppearance 中的來對控制元件進行全域性外觀設定: UIButton.appearance().tintColor = UIColor.magentaColor() 在 iOS 9 中還新增了一個修改「區域性外觀」的 API~ UIButton.appearanceWhenContainedInInstancesOfClasses([MyView.self]).tintColor = UIColor.cyanColor() 修改圖片的顏色 當然 app 中除了純色的控制元件之外還有各種圖片。 UIImage 有一項屬性叫做 renderingMode ,可以設定為:
1)AlwaysOriginal讓圖片顯示為應有的顏色。
2)AlwaysTemplate使圖片顯示為模版模式,無視其顏色。
3)Automatic 這項是預設的。大多數情況下一張圖片放在系統控制元件中會顯示其應有的顏色,但有的情況下其顏色會被無視,比如在 UITabBarItem 中的圖片。 利用這個屬性我們就可以將 app 中的圖片也修改為配合主題的顏色:let templateImage = image?.imageWithRenderingMode(.AlwaysTemplate) templateImage.tintColor = myColor() 但每次使用圖片都這樣程式碼設定一次又很麻煩,不過幸運的是我們可以直接在 Assets.xcassets 中設定圖片的屬性: