繁体   English   中英

如何将xib加载到UIView子类,Swift,iOS

[英]How to load xib to UIView subclass, Swift, iOS

我有一个名为ContentView.xib文件,我想用作名为ContentView的类的视图,但是我似乎无法加载它。

class ContentView: UIView {
    override init() {
        super.init(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        fatalError("init(coder:) has not been implemented")
    }
}

我知道您可以使用以下方法加载xib ,但是这样做会出现错误:

var contentViewXib: NSArray = NSBundle.mainBundle().loadNibNamed("ContentView", owner: nil, options: nil)

我还xibs文件所有者设置为ContentView ,并将其在“界面生成器”中的“自定义类”设置为我想使用它的类。

任何帮助表示赞赏。 谢谢

如果将文件的所有者设置为ContentView,则在XIB中查看的不是ContentView,而是ContentView可以检索的普通UIView。

在ContentView的init方法中,就像在问题中所写的那样,调用NSBundle.mainBundle()。loadNibNamed(),然后键入:

self.addSubview(contentViewXib[0])

您还需要为此新视图设置约束或自动调整掩码大小。

编辑:另一个解决方案是直接选择视图(不是文件的所有者),并将其类更改为ContentView。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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