我一直在想如何使用链接的XIB文件在Swift中正确地继承UIView。基本上,我想要一个Swift文件,其中包含UIView子类的方法,以及视图本身的接口构建器XIB文件。我想给我的XIB文件的组件命名,并在我的UIView子类的实例中访问它们。我不确定我现在是否正确执行此操作,下面是我的用于ChapterView的UIView子类,其中包含一个名为chapterText的单个UITextView:
class ChapterView: UIView {
var viewFromNib: UIView?
@IBOutlet weak var chapterText: UITextView!
override init (frame : CGRect) {
super.init(frame : frame)
loadSubviews()
}
convenience override init () {
self.init(frame:CGRectZero)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func loadSubviews () {
self.viewFromNib = NSBundle.mainBundle().loadNibNamed("ChapterView", owner: self, options: nil)[0] as? UIView
self.chapterText = viewFromNib?.subviews[0] as UITextView
}
}
我有一个名为“ChapterView”的XIB文件,其中包含UITextView中的文本。为了将我的视图添加到主视图控制器的视图中,当我想在XIB中添加视图时,我只需要添加ChapterView实例(消除将整个视图加载为viewFromNib),我当前必须添加ChapterView.viewFromNib。我拥有的是为我工作,但它看起来很难看。我该怎么做呢?