Разница между cgColor и UIColor

В моем проекте у меня есть множество цветов. Должен ли я использовать UIColor в качестве основного типа или cgColor?

Есть ли лучшие практики?

3 ответа

CGColor

  • CGColor - это основной тип данных, используемый Core Graphics для представления цветов. Объекты CGColor и функции, которые над ними работают, предоставляют быстрый и удобный способ непосредственного управления и настройки цветов, особенно цветов, которые используются повторно (например, черный для текста). CGColor является производным от CFTypeRef и наследует свойства, общие для всех типов Core Foundation.
  • В общем-то CGColor используется для применения цветовых операций с контекстами Core Graphics, такими как CGImage, CGLayer и т. д.

UIColor

  • Объект, в котором хранятся данные о цвете и иногда непрозрачность (альфа-значение). При выполнении пользовательского рисования объект 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

Другие вопросы по тегам