【发布时间】:2015-12-07 22:03:47
【问题描述】:
30 多年以来,我一直在以某种方式编程,但我是 Swift 和 iOS 编程的新手,并且正在开发我的第一个应用程序。我已经研究了如何创建 CAGradientLayer 以在屏幕上显示渐变,但我想创建一个实用程序类/扩展/子类,其中包含一些预定义的渐变。
我假设我可以通过在初始化时使用预先设置的属性创建 CAGradientLayer 的子类来做到这一点,但我不确定执行此操作的正确语法。我想我缺少一些基本的 Swift 要求?
我尝试了以下方法:
let greenBlueGradient = GreenBlueGradient.greenBlueGradient()
class GreenBlueGradient: CAGradientLayer {
override init() {
super.init()
}
func greenBlueGradient() -> GreenBlueGradient {
self.colors = [ UIColor.init( red: 0.05, green: 0.75, blue: 0.91, alpha: 1.0 ).CGColor, UIColor.init( red: 0.56, green: 0.93, blue: 0.56, alpha: 1.0 ).CGColor ]
return self
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
但我在 let 行上收到错误“调用中的参数 #1 缺少参数”。我错过了什么?当然有更有效的方法来做到这一点?我脑子里有点想,我将能够创建某种实用程序类/扩展,它将返回一个 CAGradientLayer,其颜色已经为我设置好框架并将其插入到我的视图层次结构中做好准备。
【问题讨论】:
标签: ios swift cagradientlayer