我正在尝试将我准备好的 UIView 嵌入到 Storyboard中,它位于 xib 文件中。
到目前为止我所做的是:
class TestUIView : UIView {
@IBOutlet weak private var firstButton: UIButton!
@IBOutlet weak private var secondButton: UIButton!
// MARK - Lifetime
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let view = NSBundle.mainBundle().loadNibNamed("TestUIView", owner: self, options: nil).first as! TestUIView
self.addSubview(view)
}
}
但由于某种原因,我遇到了错误的内存访问异常。 通过查看堆栈跟踪,我看到了一大堆对 initWithCoder 的调用 http://i.stack.imgur.com/iH6Am.png 我不确定为什么 NSBundle.mainBundle().loadNibNamed 会导致这个,有什么想法吗?
最佳答案
原来我做错的是我准备 .xib 文件的方式,我设置了 View 本身,而不是将文件所有者设置为 TestUIView 类。 更改文件所有者(并重置约束)后,一切正常。
关于ios - 带有编码器的 UIView init 导致递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982452/