方法不会覆盖任何方法从它的超类Xcode 8
问题描述:
当我尝试在自定义视图文件中设置渐变时,XCode 8中出现错误“方法不覆盖任何方法从它的超类”。 该代码是方法不会覆盖任何方法从它的超类Xcode 8
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
当我删除替换,这种错误发生 “方法‘layerClass()’与从超类的UIView'与目标C选择‘layerClass’与吸气剂的冲突关于‘layerClass’同样的Objective-C中选择”
完整的代码是在这里:
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 plz帮助我
答
layerClass
现在是一个getter所以你必须重写,吸气:
override public class var layerClass: Swift.AnyClass {
get {
return CAGradientLayer.self
}
}
'覆盖类VAR layerClass:AnyClass {返回CAGradientLayer.self}' –