CGGradient问题与swift 3

时间:2016-09-15 15:01:15

标签: swift3 ios10 xcode8

正在将我的代码从swift 2.3转换为3.在旧代码中,我通过以下代码创建了一个渐变:

        let colours:CFArrayRef = [tColour.CGColor, bColour.CGColor]
        let colorSpace = CGColorSpaceCreateDeviceRGB()
        let gradient = CGGradientCreateWithColors(colorSpace, colours, nil)

当Xcode 8转换代码时,它将其更改为以下内容:

    let colours:CFArray = [tColour.cgColor, bColour.cgColor]
    let colorSpace = CGColorSpaceCreateDeviceRGB()
    let gradient = CGGradient(colorsSpace: colorSpace, colors: colours, locations: nil)

但是代码会产生以下错误:

  

上下文类型' CFArray'不能与数组文字一起使用

有人可以建议如何正确转换代码。
谢谢

1 个答案:

答案 0 :(得分:20)

投射类型

let colours = [tColour.cgColor, bColour.cgColor] as CFArray
let colorSpace = CGColorSpaceCreateDeviceRGB()
let gradient = CGGradient(colorsSpace: colorSpace, colors: colours , locations: nil)