Класс 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)