Ich habe CAGradientLayer
getestet, um Farbverläufe für iOS und Mac OS X (Cocoa) zu erstellen. Zum Beispiel habe ich die folgenden Codezeilen, um Farbverlaufsfarben für iOS zu erstellen.Ein Array von CGColors aus einem Array von UIColors oder NSColors erstellen
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)
Nun, was ich habe, ist eine Reihe von Farben (UIColor
oder NSColor
), abhängig von der Entwicklungsplattform. Wenn ich ein Array mit UIColor
(oder NSColor
) erstellen programmatisch Objekte, beginnend mit
var cArray = [UIColor]()
oder
var cArray = [NSColor]()
, wie kann ich ein Array mit CGColors mit ihnen zu schaffen? Ich denke, dass this topic verwandt sein könnte. Ein Problem besteht darin, dass ich ein Array von CGColor-Objekten nicht deklarieren und initialisieren kann.
Danke
Sie http verwenden: // Stackoverflow com/questions/24065017/how-to-device-type-from-swift-os-x-or-ios zu wissen, auf welcher Plattform Sie sind, und möglicherweise ein Objekt, das behandelt werden würde die richtige Farbe: 'MyCustomObjectColor.redColor(). CGColor' – Larme
Was ist mit einer einfachen Karte:' let cgcolors = uicolors.map {$ 0.CGColor} '? - Denken Sie auch daran, 'SKColor' als plattformunabhängigen Alias für' UIColor' oder 'NSColor' zu verwenden. –