繁体   English   中英

`override init(frame:CGRect)`从未调用过?

[英]`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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM