UITableView 中有多个原型单元格?

Posted

技术标签:

【中文标题】UITableView 中有多个原型单元格?【英文标题】:Multiple prototype cells in a UITableView? 【发布时间】:2011-12-13 18:10:01 【问题描述】:

我有一个 UITableView,但我希望单元格的外观因部分而异。具体来说,我希望第 0 节和第 1 节在单元格的右侧有一个 UIStepper。

在 IB 中,UITableView 有两个原型单元格。在第一个中,我添加了 UIStepper,第二个我保留为默认值(空白)。我为步进器 UITableViewCell 提供了标识符“StepperCell”(在 IB 中),为非步进器单元格提供了标识符“Cell”。

现在,在cellForRowAtIndexPath 中,我正在检查节号,然后应用适当的重用标识符,如下所示:

static NSString *stepper = @"StepperCell";
static NSString *normal = @"Cell";
NSString *identifier = normal;
NSInteger section = [indexPath section];

if (section == 0 || section == 1) 

    identifier = stepper;


UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier: identifier];

我认为这可能会按我的意愿工作,但它将所有单元格保留为默认的空白单元格。有没有一种方法可以完成我所描述的操作,而无需以编程方式添加 UIStepper?

edit - 看起来 UIStepper 没有显示,因为附件视图在 IB 中设置为无。有没有办法让 UIStepper 成为 IB 中的附件视图,而不是默认选择(详细信息披露等)?

【问题讨论】:

你的代码看起来没问题,你有没有调试过它,看看 section 是否得到 0 或 1? 是的,它确实得到 0 和 1...就像我在编辑中所说的那样,问题是没有附件视图。例如,如果我将单元格的附件视图更改为详细信息公开,则 UIStepper 变为可见(部分位于详细信息公开按钮的后面) 将其添加到内容视图而不是附件视图。 有没有办法在 IB 中做到这一点?以编程方式执行此操作没有任何问题。我没有看到将 UIStepper 添加到原型单元格的内容视图的方法。 【参考方案1】:

我可以毫无问题地将 UIStepper 添加到我的 IB 中的原型单元格中。

确保不要忘记在 IB 原型单元的“属性检查器”中将 Style 设置为 Custom

【讨论】:

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

如何从具有多个单元格原型的 UITableView 中捕获单元格数据?

iOS:减少两个单元格之间的空间:UITableView

UITableView 每个单元格中有多个项目

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

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

如何在原型单元格上使用 UITableView 单元格及其元素