具有多个 UITableView(s) 的相同原型单元格

Posted

技术标签:

【中文标题】具有多个 UITableView(s) 的相同原型单元格【英文标题】:Same prototype cell with multiple UITableView(s) 【发布时间】:2016-07-26 11:57:59 【问题描述】:

在 Storyboard 中,我可以定义一个(或多个)原型单元以与 UITableView 一起使用。

但是我需要将同一个原型单元与多个 UITableView(s) 一起使用?

有可能吗? 谢谢。

【问题讨论】:

【参考方案1】:

UITableView 之间共享单元格的唯一方法是在 .xib 中将它们定义为单独的文件,并为它们提供重用标识符。然后在代码中将该文件/相应的类注册到UITableView

例如将其放在 tableViewController 的 viewDidLoad() 中:

tableView.registerNib(UINib(nibName: "", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: "")

然后您就可以在cellForRowAtIndexPath 中照常继续了

【讨论】:

谢谢,请注意UINib初始化器中缺少参数 @appzYourLife 你是对的,谢谢。在没有 Xcode 的情况下从内存中键入,忘记了。【参考方案2】:

你必须创建一个 nib 文件 (.xib),你可以通过 File -> New -> View (在用户界面部分下)

然后设置你的 UITableViewCell 元素并设置一些reuseIdentifier,你也可以根据需要创建子类

然后在您的 viewController 中(您想在其中使用此自定义 tableViewCell)

在 viewDidLoad 中,您需要使用 tableView 注册该笔尖,例如,

override func viewDidLoad() 
    // the .xib filename
    tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "CustomCellId")


然后在cellForRowAtIndexPath中,就可以像原型cell一样正常使用了,

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

    let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellId", forIndexPath: indexPath) as! Customcell

    // your custom code
    return cell

【讨论】:

以上是关于具有多个 UITableView(s) 的相同原型单元格的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 使用 Realm 和 Swift 具有多个按字母顺序排列的部分,多个标签与相同的数据连接

使用 Auto Layout 创建具有多个不同自定义单元格的 UITableView 具有几乎相同的子视图

如何为具有与内置单元格相同的布局指标的“UITableView”提供自定义“UITableCell”?

具有原型单元格、部分的复杂 UITableView

UITableView 中有多个原型单元格?

uitableview 中的多个原型单元,带有部分