Как мне преобразовать UIColor в шестнадцатеричную строку из 3/4/6/8 цифр в Swift?
5.2. Шестнадцатеричные обозначения RGB: # RRGGBB
В шестнадцатеричной цветовой нотации CSS можно указать цвет, задав каналы в виде шестнадцатеричных чисел, что аналогично тому, как цвета часто записываются непосредственно в компьютерном коде. Это также короче, чем запись того же цвета в нотации rgb ().
Синтаксис a представляет собой токен , значение которого состоит из 3, 4, 6 или 8 шестнадцатеричных цифр. Другими словами, шестнадцатеричный цвет записывается как хэш-символ «#», за которым следует некоторое количество цифр 0–9 или букв af (регистр букв не имеет значения - # 00ff00 идентичен # 00FF00).
Количество заданных шестнадцатеричных цифр определяет, как декодировать шестнадцатеричное представление в цвет RGB:
6 цифр
Первая пара цифр, интерпретируемая как шестнадцатеричное число, указывает красный канал цвета, где 00 представляет минимальное значение, а ff (255 в десятичном виде) представляет максимум. Следующая пара цифр, интерпретируемая таким же образом, обозначает зеленый канал, а последняя пара обозначает синий. Альфа-канал цвета полностью непрозрачен.
Другими словами, # 00ff00 представляет тот же цвет, что и rgb (0 255 0) (зеленый лайм).
8 цифр
Первые 6 цифр интерпретируются идентично 6-значной записи. Последняя пара цифр, интерпретируемая как шестнадцатеричное число, указывает альфа-канал цвета, где 00 представляет полностью прозрачный цвет, а ff - полностью непрозрачный цвет.
Другими словами, # 0000ffcc представляет тот же цвет, что и rgb (0 0 100% / 80%) (слегка прозрачный синий).
3 цифры
Это более короткий вариант 6-значного обозначения. Первая цифра, интерпретируемая как шестнадцатеричное число, указывает красный канал цвета, где 0 представляет минимальное значение, а f представляет максимум. Следующие две цифры представляют зеленый и синий каналы, соответственно, одинаково. Альфа-канал цвета полностью непрозрачен.
Этот синтаксис часто объясняется тем, что он идентичен 6-значному обозначению, полученному путем «дублирования» всех цифр. Например, запись # 123 задает тот же цвет, что и запись # 112233. Этот метод определения цвета имеет более низкое «разрешение», чем 6-значная запись; в трехзначном шестнадцатеричном синтаксисе можно выразить только 4096 возможных цветов, в отличие от примерно 17 миллионов в шестнадцатеричном шестнадцатеричном синтаксисе.
4 цифры
Это более короткий вариант 8-значного обозначения, «расширенный» так же, как и 3-значное обозначение. Первая цифра, интерпретируемая как шестнадцатеричное число, указывает красный канал цвета, где 0 представляет минимальное значение, а f представляет максимум. Следующие три цифры обозначают зеленый, синий и альфа-канал соответственно.