UISlider для представления цветового спектра

У меня есть UISlider, который должен обновлять цвет текстовой метки. Теперь я хочу, чтобы пользователь мог выбирать между всеми цветами в спектре (в любом случае). Я думал об использовании этого UISlider для представления цветов, и при перетаскивании ползунка значение/цвет меняется.

Я знаю, что спектр не является последовательным, например: [0,0,0]...[255,0,0]...[255,1,0]...[255,255,0] и т. д. Итак: любой совет о том, как я могу это реализовать?


person sebrock    schedule 02.09.2010    source источник


Ответы (2)


Да, цвет — это многомерная величина, но есть разные способы разделения этих измерений. Я думаю, что конструктор оттенка, насыщенности, яркости, а не RGB, даст вам именно тот эффект, который вы хотите. Например, я часто генерирую случайный цвет с помощью [UIColor colorWithHue:<random float in [0,1]> saturation:1.f brightness:1.f alpha:1.f].

Сдвигайте оттенок линейно от 0 до 1, при этом насыщенность и яркость фиксируются на наиболее разборчивых (или любых других) значениях.

person zem    schedule 02.09.2010
comment
интересное решение. Я попробую! - person sebrock; 03.09.2010
comment
Отлично, это было именно то, что мне было нужно! - person sebrock; 03.09.2010

Цвет – это как минимум двух- или трехмерный выбор. А ползунок обеспечивает только скалярный вывод. Если вам нужен плавно меняющийся выбор с использованием только скалярного параметра, вы можете попробовать нарисовать линию пути на какой-нибудь цветовой диаграмме (или ее функциональном представлении) и параметрически выбрать точку на этом пути.

person hotpaw2    schedule 02.09.2010
comment
У меня тоже была такая идея, но анимация была бы не такой красивой. Хоть разберусь. - person sebrock; 03.09.2010