我有一个简单的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")
}
}
}
在AngleView
内初始化AngleViewManager
实例时
AngleView(firstPoint, secondPoint, thirdPoint)
,
背景颜色不是红色,并且在重写的init中设置断点表明它永远不会被调用,即使我在我的自定义初始化程序中显式调用它,它也会被成功调用。
我错过了一些明显的东西吗?
答案 0 :(得分:2)
您正在调用UIView
的超级课程(init(frame: CGRect)
)。
只需将其更改为self.init(frame: frame)