ios - 从 UIColors 或 NSColors 数组创建 CGColors 数组

标签 ios swift cocoa-touch cagradientlayer cgcolor

我一直在测试 CAGradientLayer 来为 iOS 和 Mac OS X (Cocoa) 创建渐变颜色。例如,我有以下代码行来为 iOS 创建渐变颜色。

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)

现在,我拥有的是一组颜色(UIColorNSColor),具体取决于开发平台。如果我以编程方式创建一个包含 UIColor(或 NSColor)对象的数组,从

开始
var cArray = [UIColor]() 

var cArray = [NSColor]()

,如何创建一个包含 CGColors 的数组?我在想 this topic可能是相关的。一个问题是我不知道如何声明和初始化 CGColor 对象数组。

谢谢

最佳答案

我还想对函数 map 给予一些关注。

    let colors: [UIColor] = [UIColor.redColor(), UIColor.orangeColor()]
    let cgColors: [CGColor] = colors.map({ $0.CGColor })

map 将闭包应用于数组中的每个元素并返回它。

$0 是闭包的第一个(也是唯一一个)参数。

它实际上是以下内容的简写:

    let cgColors: [CGColor] = colors.map({ return $0.CGColor })

这是以下内容的简写:

    let cgColors: [CGColor] = colors.map({
        color: in
        return color.CGColor
    })

这是以下内容的简写:

    let cgColors: [CGColor] = colors.map({
        (color: UIColor) in
        return color.CGColor
    })

关于ios - 从 UIColors 或 NSColors 数组创建 CGColors 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37587759/

相关文章:

ios - UserDefaults 中的值仅在重新启动后出现

ios - 如何将所有文件从 NSDocumentDirectory 移动到 NSCachesDirectory?

java - 如何在cocos2d-android中找到 Sprite 是否与其他 Sprite 发生碰撞?

javascript - 如何针对 ios 4 及以下版本?

ios - 如何在 iOS 中创建混合的 "Master-Detail and Tabbar"应用程序

swift - Double Jump 的 SpriteKit 问题仅在某些时候有效

ios - 如何在 Swift 中获得 Bool 的相反值?

ios - 在 xcode 中设置 Firebase 时出现问题

ios - 更改状态栏色调颜色

iphone - UILabel 的 sizeToFit/sizeThatFits 忽略 numberoflines 属性