Я тестировал CAGradientLayer
для создания цветов градиента для iOS и Mac OS X (Cocoa). Например, у меня есть следующие строки кода для создания цветов градиента для iOS.Создание массива CGColors из массива UIColors или NSColors
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = view.bounds
gradient.colors = [UIColor.orangeColor().CGColor,UIColor.redColor().CGColor]
gradient.locations = [0.1,0.9]
self.view.layer.insertSublayer(gradient,atIndex:0)
Теперь, что у меня есть массив цветов (UIColor
или NSColor
), в зависимости от платформы разработки. Если я создаю массив, содержащий UIColor
(или NSColor
) объекты программно, начиная с
var cArray = [UIColor]()
или
var cArray = [NSColor]()
, как я могу создать массив, содержащий CGColors с ними? Я думаю, что this topic может быть связано. Одна из проблем заключается в том, что я не знаю, как объявить и инициализировать массив объектов CGColor.
Спасибо
Вы можете использовать HTTP: // StackOverflow .com/questions/24065017/how-to-define-device-type-from-swift-os-x-or-ios, чтобы знать, на какой платформе вы находитесь, и, возможно, объект, который будет обрабатывать правильный цвет: 'MyCustomObjectColor.redColor(). CGColor' – Larme
Как насчет простой карты:' let cgcolors = uicolors.map {$ 0.CGColor} '? - Также рассмотрите использование 'SKColor' в качестве независимого от платформы псевдонима либо' UIColor', либо 'NSColor'. –