59

为了更好的重用性,我想在我的 Storyboard 之外创建一个表格视图。

现在,当我在 Xcode 中使用 Nib 创建UITableView基于 ViewController 时,我会在 nib 文件中获得默认的 TableView。但是,我无法在 Interface Builder 中添加原型单元,就像在我的 Storyboard 中一样。

目前是否无法在笔尖中添加原型单元格,或者我错过了什么。

非常感谢您的帮助。

4

2 回答 2

92

iOS 5 在 UITableView 上包含了一个新方法:registerNib:forCellReuseIdentifier:

要使用它,请将 UITableViewCell 放在笔尖中。它必须是 nib 中唯一的根对象。

您可以在加载 tableView 后注册 nib,然后当您使用单元格标识符调用 dequeueReusableCellWithIdentifier: 时,它将从 nib 中提取它,就像您使用 Storyboard 原型单元格一样。

于 2012-02-05T05:07:39.960 回答
7

在斯威夫特 4 中:

  1. 从 UITableViewCell 创建新的 CocoaTouch 类,子类。
  2. 重要- 启用复选框“同时创建 XIB 文件”,它会创建一个 Swift 文件和一个 .xib 文件
  3. 在 Xib 中添加标签,就像在 Storyboard 中为原型单元所做的那样
  4. 将标签出口连接到新的 swift 文件
  5. 重要-在 vi​​ewDidLoad 中注册nib 文件

    yourTableview.register(UINib.init(nibName: "CustomCellTableViewCell", bundle: nil), forCellReuseIdentifier: "Cell")
    

    (或者)

    yourTableview.register(UINib(nibName: "CustomCellTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell")
    
  6. 正常实现数据源和委托,并将类型转换为 cellForRowAtIndexPath 中的 CustomCell。
于 2017-10-16T09:50:52.203 回答