Swift 4:在没有任何报告的情况下从nib崩溃实例化View

时间:2018-01-30 16:17:04

标签: ios swift uiview xib nib

我有自定义的UIView子类以及相关的.xib文件。在我required init?(_:)内的.swift文件中:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    let xibView = loadViewFromNib(named: "RangeSelectorView")
    xibView.frame = self.bounds
    xibView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.addSubview(xibView)
}

我正在呼叫loadViewFromNib(_:),其执行以下操作:

func loadViewFromNib(named name: String) -> UIView {
    let bundle = Bundle(for: type(of: self))
    let nib = UINib(nibName: name, bundle: bundle)
    let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView

    return view
}

在我的Storyboard中的TableViewController的原型单元格内部,我有一个UIView,它应该是我的自定义类的一个实例。代码确实编译没有任何问题,但只要TableViewController出现在屏幕上,它崩溃时不会给我任何明确的错误消息。

任何想法我做错了什么?

- 更新: -

如果我注释掉required init?(_:)和我的自定义视图的.swift文件(视图本身)的唯一出口,到目前为止一切正常。但后来我遇到的问题是我无法将Actions连接到重复内容,这是在原型单元格的内容视图中的情况。这就是我试图将类源化为.xib文件的原因,因为它将有两个不同的手势识别器和一些由它们触发的动作。

0 个答案:

没有答案