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

时间:2015-03-15 15:35:06

标签: ios swift uiview xib

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

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,并将其界面构建器中的自定义类设置为我想要使用它的类。

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

如果将File的所有者设置为ContentView,则XIB中的视图不是ContentView,ContentView可以检索的是普通的UIView。

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

self.addSubview(contentViewXib[0])

您还需要为此新视图设置约束或自动调整遮罩。

修改 另一种解决方案是直接选择视图(不是文件所有者)并将其类更改为ContentView。