UITableView 静态单元格中的 IBOutlets

IBOutlets in UITableView Static Cells

我创建了一个 UITableView(以及相关的 classes),包含两个部分:

为了控制静态单元格,我实现了一个 class,在那个 class 中,我将 IBOutlet 添加到静态单元格中的一个对象(例如标签)。当我试图在控制 table 视图的 class 中访问该插座时,出现此错误:

outlet doesn't exist

为了更好地解释我的问题,我做了一个video

短版

UITableView 不能同时是 Static CellsDynamic Prototypes 内容。你需要选择一个或另一个。

因为您需要动态原型,请使用动态原型


长版

创建动态原型的步骤

  1. Select 您的 Table 在 IB 中查看 > 显示属性检查器 > Table 查看 > 内容 > 动态原型
  2. IB > 显示对象库部分,将尽可能多的 Table View Cell 拖到 table 查看您的细胞类型。
  3. 如果您有一些单元格在 运行 时间永远不会改变,您可以很好地在 IB 中为每个单元格创建 1 个实例;它们的行为类似于 Static Cells
  4. 对于自定义单元格(†),推荐的做法是创建 UITableViewCell 的子class,并应用该自定义 class 到相关单元格(IB > 显示身份检查器),然后从列表中选择您的 Custom Class。这当然意味着你已经创建了这样的子classes。
  5. 不要忘记为每个单元格原型分配一个唯一标识符,以便您可以在 运行 时间使用 dequeueReusableCellUsingIdentifier;
  6. 检索这些

使用此设置,您可以 select 您的 Table 查看单元格,IB > 显示助理编辑器,并在您的自定义 class。您可能需要告诉助理编辑器选择哪个文件。


(†) 还有很多其他方法可以做到这一点;不在本回复范围内。