Диапазон значений оттенка, насыщенности, яркости для пространства UIColor и Display P3? - PullRequest
0 голосов
/ 03 марта 2020

Класс UIColor использует пространство "Extended sRGB", которое позволяет значениям за пределами обычного диапазона [0, 1] для компонентов RGB. Вот ссылка на документацию Apple . Этот расширенный диапазон представляет проблему при создании пользовательского интерфейса для настройки цвета. Типичные «палитры цветов» позволяют перетаскивать ползунок для каждого компонента в диапазоне от 0 до 1,0. Но на что эти значения отображаются? Для RGB API позволяет определять значения (используя UIColor, CGColor, CGColorSpace), но для HSV, что вы можете сделать?

UIColor имеет удобный инициализатор:

init(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)

В документах говорится, что он принимает значения вне диапазона [0, 1]. Но каковы пределы? Если пользователь перетаскивает ползунок оттенка, насыщенности или значения (яркости) к минимальному или максимальному значению, какие числа я передам этому конструктору?

Разве мне не нужно это для такого кода:

var h,s,v,a ...
uiColor.getHue(&h, saturation: &s, brightness: &v, alpha: &a)
let newHue = getValueFromSliderOrSomeUIComponent()
let newColor = UIColor(hue:newHue, saturation:s, brightness:v, alpha:a)
...