类型[NSNumber]没有下标成员

时间:2017-06-09 15:26:43

标签: swift

我正在尝试为Gradient类创建一个泛型类,但我收到此错误。 任何帮助将得到解释。

import UIKit

@IBDesignable
class GradientView: UIView {

    @IBInspectable var FirstColor: UIColor = UIColor.clear{
        didSet{
            updateView()
        }
    }
    @IBInspectable var SecondColor: UIColor = UIColor.clear{
        didSet{
            updateView()
        }
    }
    override class var layerClass: AnyClass{
        get{
            return CAGradientLayer.self
        }
    }
    func updateView(){
        var layer  = self.layer as! CAGradientLayer

            layer.colors[FirstColor.cgColor, SecondColor.cgColor]
            layer.locations[NSNumber[0.5]]  
    } 
}

我在这两行中得到错误 -

layer.colors[FirstColor.cgColor, SecondColor.cgColor]
layer.locations[NSNumber[0.5]]

2 个答案:

答案 0 :(得分:0)

你错过了等号:

layer.colors = [FirstColor.cgColor, SecondColor.cgColor]
layer.locations = [NSNumber(value: 0.5)]

答案 1 :(得分:0)

NSNumber有一个接受Double的初始化程序,但是您错误地使用了方括号,表示尝试访问下标成员。

C:\ProgramData更改为layer.locations[NSNumber[0.5]]