Swift - создать массив пользовательских цветов - PullRequest
0 голосов
/ 08 января 2020

Есть ли способ создать массив пользовательских цветов? Я знаю, что могу создавать собственные цвета в 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),
]

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Или если вы хотите иметь возможность ссылаться на них по имени или по индексу массива:

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]
0 голосов
/ 08 января 2020

Вам не нужен подкласс для создания массива:

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)
]

access

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

или как глобальный

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)

доступ

color1

При создании цвета разделите на 255

UIColor(displayP3Red: 2/255.0, green: 2/255.0, blue: 2/255.0, alpha: 1)
...