从nib实例化UIView会导致无限循环问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从nib实例化UIView会导致无限循环问题相关的知识,希望对你有一定的参考价值。

我正在尝试使用我创建的自定义视图。

我使用来自nib的实例化,但它会导致无限循环,我不知道如何修复。任何的想法?

以下是运行结果的图像:

enter image description here

这是导致问题的代码:

// MARK:  - Init & Setup
// Needed for IBDesignable



override init(frame: CGRect) {
    super.init(frame: frame)
    setup()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setup()
}

func setup(){
    view = loadViewFromNib()
    view.frame = bounds
    view.autoresizingMask = UIViewAutoresizing(rawValue: UIViewAutoresizing.RawValue(UInt8(UIViewAutoresizing.flexibleWidth.rawValue) | UInt8(UIViewAutoresizing.flexibleHeight.rawValue)))
    addSubview(view)
}

func loadViewFromNib() -> UIView{
    let bundle = Bundle(for:type(of: self))
    let nib = UINib(nibName: "LoginView", bundle: bundle)         // TEST: changin bundle from bundle-> nil

    let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
    return view
}

编辑:这是连接的图像

enter image description here

谢谢 :)

以上是关于从nib实例化UIView会导致无限循环问题的主要内容,如果未能解决你的问题,请参考以下文章

从 nib 加载自定义 UIView 会导致无限循环或抛出 nil 异常

如何从 ViewController 中的 xib (nib) 实例化 UIView / UITableView

无法从 nib 实例化 UIView。 “警告:无法加载任何 Objective-C 类信息”

从 XIB 问题动态实例化自定义 UIView(此代码有啥问题)?

如何在不使用 Nib 的情况下实例化和调用 UIView 子类

保存 Matlab 对象实例会导致无限循环