Использование HandyUIKit делает это легкой задачей , например:
import HandyUIKit
UIColor.black.hlca.luminance // => 0.0
UIColor.white.hlca.luminance // => 1.0
UIColor.lightGray.hlca.luminance // => 0.70
UIColor.darkGray.hlca.luminance // => 0.36
UIColor.red.hlca.luminance // => 0.53
UIColor.green.hlca.luminance // => 0.87
UIColor.blue.hlca.luminance // => 0.32
Простое использование .hlca.luminance
на любом экземпляре UIColor
даст вам правильное значение для воспринимаемой легкости . В большинстве других подходов не учитывается тот факт, что люди воспринимают разные цвета (даже если насыщенность и яркость одинаковы) при разных уровнях яркости . Значения luminance
учитывают это.
Прочитайте этот отличный пост в блоге или запись в Википедии о LAB цветовом пространстве для дальнейшего объяснения. Они также объяснят, почему цветовая система HSB с ее значением brightness
составляет всего половину решения.
Как подсказка: обратите внимание, что значение luminance
цвета pure green на намного выше , чем на pure blue . Это просто потому, что люди воспринимают чистый синий как гораздо более темный цвет, чем чистый зеленый.