【发布时间】:2018-02-09 21:56:47
【问题描述】:
假设我有一个父视图类,它至少包含 1 个属性:
class BaseView : UIView {
@IBOutlet weak var myLabel: UILabel!
}
这个类有一个对应的 xib 文件,其中有一个从 xib 到 myLabel 属性的出口连接。
现在假设我们还有一些继承自这个类的子类:
class ChildView : BaseView {
func setup() {}
}
ChildView 有一些自定义逻辑,但可以重用 BaseView 中的所有视图。它没有(或者我宁愿避免它拥有)自己的相应 xib 文件。
我希望能够做这样的事情:
let childView = Bundle.main.loadNibNamed(String(describing: BaseView.self), owner: nil, options:nil)?.first as! ChildViewA
但这不起作用。也没有:
let childView = ChildView()
Bundle.main.loadNibNamed(String(describing: BaseView.self owner: childView, options: nil)
是否允许子视图以类似的方式从其父视图的 xib 文件继承?
【问题讨论】:
-
你想使用两个类的同一个xib文件吗?
-
是的,尽管只有第二个类继承自第一个类的关系。
-
xib文件中没有继承的概念。您可以使用继承的类,但不能使用 xib。