Создание CGColor из значения RGB

Я использую следующий код, чтобы установить фон контроллера просмотра

    view.wantsLayer = true
    let myColor = NSColor(calibratedRed: 50, green: 50, blue: 50, alpha: 1.0)
    view.layer?.backgroundColor = myColor.cgColor

Но при отладке myColor я получаю следующий цвет вместо предполагаемого цвета

введите здесь описание изображения


person techno    schedule 22.05.2020    source источник
comment
@techno Вам нужно 255 вместо 256, хотя это лишь небольшая разница, мой ответ был правильным.   -  person Frankenstein    schedule 22.05.2020


Ответы (2)


Вот документация. Все, что выше 1, считается за 1. Вам нужно разделить каждое значение на 255.

view.wantsLayer = true
let myColor = NSColor(calibratedRed: 50/255, green: 50/255, blue: 50/255, alpha: 1.0)
view.layer?.backgroundColor = myColor.cgColor

Кроме того, проверьте это -> Ссылка

person Frankenstein    schedule 22.05.2020

Диапазон цветовых компонентов (RGBA) варьируется от [0,1]

init(red:green:blue:alpha:)

Создает цветовой объект с указанными значениями красного, зеленого, синего и альфа-канала. Этот метод принимает расширенные значения компонентов цвета. Если значения красного, зеленого, синего или альфа-канала выходят за пределы диапазона 0–1,0,

Таким образом, вы можете получить cgColor

view.layer?.backgroundColor = NSColor(calibratedRed: 50.0/255.0, green: 50.0/255.0, blue: 50.0/255.0, alpha: 1.0).cgColor
person Jawad Ali    schedule 22.05.2020
comment
Кажется, я каждый раз натыкаюсь на тебя. Так это 256 или 255? - person Frankenstein; 22.05.2020