В Objective-C мы используем этот код для установки цветовых кодов RGB для представлений:
#define UIColorFromRGB(rgbValue)
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
view.backgroundColor=UIColorFromRGB(0x209624);
Как я могу использовать это в Swift?
Ответы:
Вот версия этой функции на Swift (для получения представления
UInt
значения UIColor ):источник
Я хотел поставить
но это не сработало.
Итак, я использовал:
для Swift
Итак, это обходной путь, который я нашел.
источник
Мне очень понравился ответ Нейта Кука, но я хотел чего-то более идиоматичного. Я считаю, что это действительно хороший вариант использования удобного инициализатора через настраиваемое расширение.
Теперь это можно использовать так:
Я бы рекомендовал обезьяну исправлять такие классы UIKit только в вашем собственном клиентском коде, а не в библиотеках.
источник
0x
ним просто следует любой шестнадцатеричный цвет - color-hex.comисточник
Самый простой способ добавить цвет программным способом - использовать ColorLiteral .
Просто добавьте свойство ColorLiteral, как показано в примере, Xcode предложит вам полный список цветов, которые вы можете выбрать. Преимущество этого заключается в меньшем количестве кода, добавлении значений HEX или RGB . Вы также получите недавно использованные цвета из раскадровки.
Пример: self.view.backgroundColor = ColorLiteral
источник
Если вы начинаете со строки (не шестнадцатеричной), это функция, которая принимает шестнадцатеричную строку и возвращает UIColor.
(Вы можете вводить шестнадцатеричные строки в любом формате:
#ffffff
илиffffff
)Использование:
Swift 4:
Swift 3:
Swift 2:
Источник: arshad / gist: de147c42d7b3063ef7bc
источник
Для Xcode 9 используйте
UIColor
со значениями RGB.Предварительный просмотр:
См. Дополнительную документацию Apple по UIColor .
источник
UIColorFromRGB в Swift 4
источник
Я быстро использовал следующее.
источник
решение для формата argb:
использование:
источник
Это сработало для меня быстро. Попробуй это
источник
добавление быстрого варианта 3:
источник
Вы не можете использовать сложные макросы, как
#define UIColorFromRGB(rgbValue)
в swift. Замена простого макроса на swift - это глобальные константы вродеТем не менее, сложные макросы, которые принимают параметры, не поддерживаются swift. вместо этого вы можете использовать функции
Отрывок из книги « Использование swift с какао» и цели C
Проверьте ответ @Nate Cooks, чтобы здесь использовалась Swift-версия этой функции.
источник
Вы можете использовать это:
источник
Ответ Нейта Кука абсолютно правильный. Для большей гибкости я сохранил в своем пакете следующие функции:
И вот как я их использую:
Надеюсь, это поможет. Все протестировано с помощью Swift 3 / Xcode 8.
источник
Это хорошее расширение для UIColor. Вы можете использовать значения перечисления (шестнадцатеричные, строковые) и прямые строковые значения при создании объектов UIColor.
Расширение, которого мы заслуживаем https://github.com/ioramashvili/UsefulExtensions/blob/master/Extensions.playground/Pages/UIColor.xcplaygroundpage/Contents.swift
источник
Я вижу, что на него уже ответили, но все же надеюсь, что один лайнер поможет лучше.
Обновлено:: Изменения, сделанные в соответствии с примером, объясненным автором вопроса, для предоставления шестнадцатеричных значений
источник
В Swift3, если вы начинаете с уже выбранного цвета, вы можете получить значение RGB онлайн ( http://imagecolorpicker.com ) и использовать те значения, которые определены как UIColor. Это решение реализует их как фон:
@Vadym упомянул об этом выше в комментариях, и важно определить CGFloat с одной десятичной точкой
источник
источник
Это можно просто сделать, используя эту инициализацию
источник