【问题标题】:How to reuse custom UITableViewCell defined as a prototyped cell in Storyboard controller如何在 Storyboard 控制器中重用定义为原型单元的自定义 UITableViewCell
【发布时间】:2014-06-12 17:24:44
【问题描述】:

我有两个不同 UITableViewControllers/TableViews 中项目的唯一单元格模板。 我需要的是定义一次,然后通过

在其他 UITableView 重用
UITableView.DequeueReusableCell(CellId);

问题是当我在不包含单元原型的 UITableView 上调用此方法时,我得到 NULL。

如何在多个表格控制器中重复使用我的原型单元格? 我想在情节提要中定义单元格模板,而不是 xib。

【问题讨论】:

    标签: ios uitableview reuseidentifier


    【解决方案1】:

    事实证明,重用单元格的唯一方法是使用 xib 设计它并在 tableview 中注册该 xib 和 cellid。

    【讨论】:

    • 我更喜欢使用 xib 来使 tableview 单元格可重用,因为在大多数情况下它是一个很好的解决方案。
    【解决方案2】:

    只需将原型单元格复制粘贴到您需要的每个表格视图控制器中即可。

    如果我理解你的问题,以一种标准和适当的方式,不可能从另一个表格视图中取出一个单元格,Apple 实现会自行处理这个机制。

    【讨论】:

    • 所以我唯一的选择是将其设计为单独的 XIB?
    • 不,您可以直接在情节提要文件中执行此操作。拖放一个单元原型,使其成为您的自定义类的实例,并从右下角的菜单中添加一些元素作为子视图。
    • 我的意思是没有复制/粘贴。复制/粘贴它是我将尝试的最后一件事
    • 不,我不知道有其他方法可以做到这一点。实际上,这甚至非常有用:对于相同类型的单元格,无需更改一行代码,您可以以另一种方式排列元素,从一个控制器到另一个控制器。
    【解决方案3】:

    将 xib 用于可重复使用的单元格是有益的,而单元格设计在整个应用程序中是固定的。但是当有条件要求或设计或功能略有变化时,tableview cell 的剩余设计和功能相同,在这种情况下,如果您仍想重用代码,则可以子类化 tableview cell 类。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 1970-01-01
      • 2012-08-12
      • 2012-09-16
      • 2011-12-13
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2014-03-07
      相关资源
      最近更新 更多