封裝顏色管理類
//
// FyColor.swift
// FyColor
//
// Created by l on 2020/3/13.
// Copyright ? 2020 ifeiyv. All rights reserved.
//
import UIKit
class FyColors{
///深色模式適配 手動(dòng)控制適配模式 啟用 關(guān)閉(如非必要,可移除相關(guān)代碼)
static let isOpenDarkModel:Bool = true
//MARK: eg文字顏色
//文字顏色 如果有多種文字顏色可以設(shè)置多個(gè) eg: labelTextColor
public class var labelTextColor: UIColor {
return darkModeColor(dark:UIColor.white,light:UIColor.black)
}
//文字顏色 如果有多種文字顏色可以設(shè)置多個(gè) eg: buttonTextColor
public class var buttonTextColor: UIColor {
return darkModeColor(dark:UIColor.white,light:UIColor.black)
}
//文字顏色 如果有多種文字顏色可以設(shè)置多個(gè) eg: fieldTextColor
public class var fieldTextColor: UIColor {
return darkModeColor(dark:UIColor.white,light:UIColor.black)
}
//MARK: eg背景顏色
//背景顏色 如果有多種文字顏色可以設(shè)置多個(gè) eg: labelBgColor
public class var labelBgColor: UIColor {
return darkModeColor(dark:UIColor.black,light:UIColor.white)
}
//背景顏色 如果有多種文字顏色可以設(shè)置多個(gè) eg: buttonBgColor
public class var buttonBgColor: UIColor {
return darkModeColor(dark:UIColor.black,light:UIColor.white)
}
//背景顏色 如果有多種背景顏色可以設(shè)置多個(gè) eg: viewBgColor
public class var viewBgColor: UIColor {
return darkModeColor(dark:UIColor.black,light:UIColor.white)
}
//.........................................
//根據(jù)需求增加相對應(yīng)的顏色即可
//darkModeColor(dark:UIColor.white,light:UIColor.black)
//實(shí)際開發(fā)中不可能只有 UIColor.white石蔗,UIColor.black 兩種顏色罕邀。
//根據(jù)產(chǎn)品需求增加和修改對應(yīng)的顏色
//MARK:檢測當(dāng)前是否是深色模式
class func isDarkStyle() -> Bool{
if(!isOpenDarkModel){
return false
}
if #available(iOS 13.0, *){
let currentMode = UITraitCollection.current.userInterfaceStyle
if(currentMode == .dark){
return true
}
}
return false
}
//MARK: 適配 動(dòng)態(tài)顏色
class func darkModeColor(dark:UIColor,light:UIColor) ->UIColor{
if(!isOpenDarkModel){
return light
}
if #available(iOS 13.0, *){
return UIColor{(trainCollection) -> UIColor in
if trainCollection.userInterfaceStyle == .dark{
return dark
}else{
return light
}
}
}
return light
}
}
使用方式:(深色模式切換時(shí),系統(tǒng)會重新渲染顏色养距,自動(dòng)在設(shè)置好的兩種顏色中進(jìn)行切換)
label.textColor = FyColors.labelTextColor
label.backgroundColor = FyColors.labelBgColor
//或者在此方法監(jiān)聽深色模式進(jìn)行手動(dòng)切換
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者