[英]What is the Obj C equivalent of override init(frame:CGRect) in Swift?
[英]`override init(frame: CGRect)` never called?
我有一个简单的UIView子类,如下所示:
import UIKit
class AngleViewManager: UIView {
class AngleView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.red
}
init(first: CGPoint, second: CGPoint, third: CGPoint) {
// setup
super.init(frame: CGRect(dimensions))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
}
当我在AngleViewManager
初始化AngleView
实例时
AngleView(firstPoint, secondPoint, thirdPoint)
,
背景颜色不是红色,即使在我成功自定义的自定义初始化程序中显式调用了它,在覆盖的init中设置一个断点也表明它从未被调用。
我是否缺少明显的东西?
您正在调用init(frame: CGRect)
的超类( UIView
)实现。
只需将其更改为self.init(frame: frame)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.