【发布时间】:2017-01-01 04:53:30
【问题描述】:
当我尝试在自定义视图文件中设置渐变时,我在 XCode 8 中遇到错误“方法不会覆盖其超类中的任何方法”。 代码是
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
当我删除覆盖时,会发生此错误 “带有Objective-C选择器'layerClass'的方法'layerClass()'与具有相同Objective-C选择器的超类'UIView'中'layerClass'的getter冲突”
完整代码在这里:
import UIKit
@IBDesignable
class CustomView: UIView {
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
var gradientLayer: CAGradientLayer {
return layer as! CAGradientLayer
}
override func draw(_ rect: CGRect) {
// Drawing code
layer.masksToBounds = true
layer.borderWidth = 10.0
layer.borderColor = UIColor(red: 0.0, green: 64/225.0, blue: 128/225.0, alpha: 1.0).cgColor
layer.cornerRadius = 20.0
let startColor = UIColor(red: 102/225.0, green: 204/225.0, blue: 1.0, alpha: 1.0).cgColor
let endColor = UIColor(red: 0.0, green: 128/225.0, blue: 1.0, alpha: 1.0).cgColor
gradientLayer.colors = [startColor,endColor]
}
}
我是iOS新手,请帮帮我
【问题讨论】:
-
override class var layerClass: AnyClass { return CAGradientLayer.self }