Разница между cgColor и UIColor
В моем проекте у меня есть множество цветов. Должен ли я использовать UIColor
в качестве основного типа или cgColor
?
Есть ли лучшие практики?
3 ответа
- CGColor - это основной тип данных, используемый Core Graphics для представления цветов. Объекты CGColor и функции, которые над ними работают, предоставляют быстрый и удобный способ непосредственного управления и настройки цветов, особенно цветов, которые используются повторно (например, черный для текста). CGColor является производным от CFTypeRef и наследует свойства, общие для всех типов Core Foundation.
- В общем-то
CGColor
используется для применения цветовых операций с контекстами Core Graphics, такими как CGImage, CGLayer и т. д.
- Объект, в котором хранятся данные о цвете и иногда непрозрачность (альфа-значение). При выполнении пользовательского рисования объект UIColor предоставляет методы, которые устанавливают цвета заливки или обводки текущего графического контекста. Объект UIColor, как правило, представляется внутри как цвет основной графики (CGColor) в цветовом пространстве основной графики (CGColorSpace). Существуют методы и свойства, которые возвращают базовые данные о цвете.
- UIColor, используется для применения цветовых операций к элементам интерфейса UIKit, таким как UIImage, UIView и т. Д.
cgColor: свойство экземпляра UIColor, связывает UIColor и GCColor друг с другом.
Примечание: Вы можете сохранить ссылку на кого угодно, но вы должны преобразовать их в соответствующий класс цвета, имея дело с цветовыми операциями над элементами графического интерфейса, к которым он принадлежит.
Используйте UIColor, и если вы хотите конвертировать его anyTime
var cc = UIColor.red.cgColor
UIColor: обычно мы используем в качестве цвета фона видов
cgColor: всегда используется для слоев (как заливка или обводка) или границ видов
Поскольку UIColor
имеет cgColor
Я бы сказал, что первое удобнее использовать, если вы сомневаетесь.
UIColor
широко используется в UIKit в то время как cgColor
используется только для функций CoreGraphics и CoreAnimation, поэтому более вероятно, что массив, который вам понадобится массив UIColor