如何以编程方式添加可重用的自定义视图? (迅速)

时间:2017-05-01 20:23:13

标签: ios swift uitableview xib nscoding

我创建了一个包含表格的可重用xib文件,并将其加载到TableView.swift文件中,如下所示:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)    
    Bundle.main.loadNibNamed("TableView", owner: self, options: nil)
}

我只是提到这一点,以澄清我对如何加载xib文件并不感到困惑

我可以通过向RootViewController.swift添加视图并为该视图提供如下自定义类,轻松加载我的UIViewController文件中的可重用视图:

enter image description here

然后像这样为该视图创建一个插座:

enter image description here

所以这是我的问题:

为什么我无法简单地添加这样的视图:

let tableViewView = TableView()

当我这样做时,我得到一个我不完全理解的错误:

enter image description here

1 个答案:

答案 0 :(得分:3)

您还需要覆盖帧初始值设定项。

假设您的TableView类是UITableView子类,它应该如下所示:

class TableView: UITableView {

    override init(frame: CGRect, style: UITableViewStyle) {
        super.init(frame: frame, style: style)
        // any additional setup code
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        // any additional setup code
    }

}

因为您尝试以编程方式实例化表视图,所以需要为该帧提供初始化程序,而不仅仅是带编码器的初始化程序。