El *_*ato 0 cocoa-touch cgcolor ios cagradientlayer swift
我一直在测试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)
Run Code Online (Sandbox Code Playgroud)
现在,我所拥有的是一系列颜色(UIColor或NSColor),具体取决于开发平台.如果我以编程方式创建一个包含UIColor(或NSColor)对象的数组,则以
var cArray = [UIColor]()
Run Code Online (Sandbox Code Playgroud)
要么
var cArray = [NSColor]()
Run Code Online (Sandbox Code Playgroud)
,如何创建包含CGColors的数组?我在想这个话题可能是相关的.一个问题是我不知道如何声明和初始化CGColor对象的数组.
谢谢
我还想对这个功能给予map一些关注.
let colors: [UIColor] = [UIColor.redColor(), UIColor.orangeColor()]
let cgColors: [CGColor] = colors.map({ $0.CGColor })
Run Code Online (Sandbox Code Playgroud)
map 将闭包应用于数组中的每个元素并返回它.
$0 是闭包的第一个(也是唯一的)参数.
它实际上是一个简写:
let cgColors: [CGColor] = colors.map({ return $0.CGColor })
Run Code Online (Sandbox Code Playgroud)
这是一个简写:
let cgColors: [CGColor] = colors.map({
color: in
return color.CGColor
})
Run Code Online (Sandbox Code Playgroud)
这是一个简写:
let cgColors: [CGColor] = colors.map({
(color: UIColor) in
return color.CGColor
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |