Swift-创建自定义颜色数组

时间:2020-01-07 22:14:06

标签: ios swift uicolor

是否可以创建自定义颜色的数组?我知道我可以在class UIColors中创建自定义颜色,但就我而言,我需要一系列自定义颜色。

我想实现以下目标:

let listColors: [UIColor] = [
    let color1 = UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1),
    let color2 = UIColor(displayP3Red: 2, green: 2, blue: 2, alpha: 1),
    let color3 = UIColor(displayP3Red: 3, green: 3, blue: 3, alpha: 1),
]

3 个答案:

答案 0 :(得分:0)

您不需要子类来创建数组

int_y

访问

int_x = r * sin.cos(angle)

let listColors = [  
    UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1),
    UIColor(displayP3Red: 2, green: 2, blue: 2, alpha: 1),
    UIColor(displayP3Red: 3, green: 3, blue: 3, alpha: 1)
]

访问

listColors[index]

或全局

class Colors {

   static let color1 = UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1)
   static let color2 = UIColor(displayP3Red: 2, green: 2, blue: 2, alpha: 1) 
   static let color3 = UIColor(displayP3Red: 3, green: 3, blue: 3, alpha: 1)

}

访问

Colors.color1

创建除以255的分色

let color1 = UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1)
let color2 = UIColor(displayP3Red: 2, green: 2, blue: 2, alpha: 1) 
let color3 = UIColor(displayP3Red: 3, green: 3, blue: 3, alpha: 1)

答案 1 :(得分:0)

或者如果您希望能够通过名称通过数组索引来引用它们:

let color1 = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), //White
let color2 = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0), //Gray
let color3 = UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0), //Red

let listColors: [UIColor] = [color1, color2, color3]

答案 2 :(得分:0)

如果您在应用程序中支持深色和浅色模式,则最好将自定义颜色定义为应用程序中的素材资源,然后像这样访问它们

extension String {
    static let blueColorName = "Blue"
    static let brownColorName = "Brown"
    static let crustaColorName = "Crusta"
    static let darkRedColorName = "DarkRed"
    static let defaultColorName = "Default"
    static let flamingoColorName = "Tango"
    static let khakiColorName = "Khaki"
    static let greenColorName = "Green"
    static let limeColorName = "Lime"
    static let lustColorName = "Lust"
    static let oliveColorName = "Olive"
    static let orangeColorName = "Orange"
    static let pinkColorName = "Pink"
    static let purpleColorName = "Purple"
    static let roseColorName = "Rose"
    static let redColorName = "Red"
    static let skyColorName = "Sky"
    static let steelColorName = "Steel"
    static let sunColorName = "Sun"
    static let tealColorName = "Teal"
    static let yellowColorName = "Yellow"
    // Tile Background Colors
    static let tileGrayColorName = "TileGray"
    static let tileGreenColorName = "TileGreen"
    static let tileRedColorName = "TileRed"
    static let tileYellowColorName = "TileYellow"
}

extension UIColor {
    
    // MARK: - Custom Color List For Color Picker

    static let customColorsList: [(colorName: String, uiColor: UIColor)] = [
        ("Orange", UIColor(named: .orangeColorName)!),
        ("Tango", UIColor(named: .flamingoColorName)!),
        ("Crusta", UIColor(named: .crustaColorName)!),
        ("Yellow", UIColor(named: .yellowColorName)!),
        ("Sun", UIColor(named: .sunColorName)!),
        ("Khaki", UIColor(named: .khakiColorName)!),
        ("Lime", UIColor(named: .limeColorName)!),
        ("Green", UIColor(named: .greenColorName)!),
        ("Olive", UIColor(named: .oliveColorName)!),
        ("Teal", UIColor(named: .tealColorName)!),
        ("Sky", UIColor(named: .skyColorName)!),
        ("Blue", UIColor(named: .blueColorName)!),
        ("Steel", UIColor(named: .steelColorName)!),
        ("Pink", UIColor(named: .pinkColorName)!),
        ("Rose", UIColor(named: .roseColorName)!),
        ("Purple", UIColor(named: .purpleColorName)!),
        ("Lust", UIColor(named: .lustColorName)!),
        ("Dark Red", UIColor(named: .darkRedColorName)!),
        ("Brown", UIColor(named: .brownColorName)!),
        ("Default", UIColor(named: .defaultColorName)!)
    ]
}