【发布时间】:2015-12-14 11:32:00
【问题描述】:
我认为这个问题很简单,但是经过长时间的搜索没有找到答案,我想在这里问:
我有一个带有 .xib 文件的自定义视图 (MyCustomView:UIView)。 要将这个类与它的 nib 一起使用,我添加了一个类函数,如下所示
class func addCustomViewToView(view: UIView)
{
let CV = NSBundle(forClass: MyCustomView.self).loadNibNamed("MyCustomView", owner: self, options: nil).first as! MyCustomView
CV.frame = CGRectMake(0, 0, view.frame.width, view.frame.height)
view.addSubview(CV)
}
在我的应用程序的另一个地方,我不得不扩展我的自定义视图,所以我创建了我的自定义视图的子类:
class MyExtendedCustomClass : MyCustomClass
{
...
}
我试图重写类函数,但我没有找到使用父类的 nib 文件创建子类项的方法。
这样做的正确方法是什么?
谢谢
【问题讨论】:
-
您的 addCustomViewToView 方法错误。
loadNibNamed返回一个NSArray。然后,您必须在该数组中找到视图。 (我手头没有代码,你应该可以在网上找到它。)我通常将文件的所有者设置为父VC类,然后在调用loadNibNamed之后连接出口。 -
@DuncanC 他可能将视图分配给文件所有者中名为
PC的属性。这就是他不使用CV变量的原因。 -
感谢 Duncan C,我已修复,只是错字..
标签: ios swift inheritance uiview nib