UITableView 中的两个自定义单元格

Posted

技术标签:

【中文标题】UITableView 中的两个自定义单元格【英文标题】:Two customize cells in UITableView 【发布时间】:2015-03-27 00:15:38 【问题描述】:

我想知道是否可以在一个 UITableView 中包含 2 个自定义单元格?

因为我想在一个视图中有两种不同类型的单元格:第一行会很大(屏幕截图上有白色背景),然后是简单行(屏幕截图上有红色背景)。

告诉我这是否可能,以及如何做到这一点:)

我让你看看我想做什么:

http://www.noelshack.com/2015-13-1427415385-sans-titre.png

或者也许在表格单元格之后放置一个 UIView 用于大标签?

【问题讨论】:

您可以在同一个表格视图中拥有数千个不同的自定义单元格。 @rmaddy 真的吗?你可以选择他们的细胞大小吗?所以可以实现我的截图吗? 当然。阅读文档中的“ios 表视图编程指南”。 然后some searching。 【参考方案1】:

有两种方法,假设大屏幕截图只在第一行。您可以设置表格视图的属性

tableView.tableHeaderView = myHugeImage;

否则,如果您使用 nib 和自定义类设计 2 行,则需要在 viewDidLoad 中调用以下内容。请注意,自定义类必须是 UITableViewCell 的子类

[tableView registerNib:[UINib nibWithNibName:@"bigrow" bundle:nil] forCellReuseIdentifier:@"big"]
[tableView registerNib:[UINib nibWithNibName:@"normal row" bundle:nil] forCellReuseIdentifier:@"normal"]

如果你使用类而不使用 nib,那么你会使用 registerClass:forCellReuseIdentifier 如果您使用类并直接在原型单元格内设计单元格,那么这些调用都不是必需的。

最后,tableView:cellForRowAtIndexPath:

if (indexPath.row == 0) 
    BigRowCell *c = [tableView dequeueReusableCellWithIdentifier:@"big" forIndexPath:indexPath];
    return c;

SmallRowCell *c = [tableView dequeueReusableCellWithIdentifier:@"normal" forIndexPath:indexPath];
return c;

【讨论】:

以上是关于UITableView 中的两个自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章

一个 UIViewController 中的自定义单元格 tableview 和默认 UITableView

UITableView 中的自定义单元格使图像在滚动时重叠

如何区分具有相同自定义单元格的两个 UITableView

UITableview 滚动时有两个不同的自定义单元格重叠

使用自定义单元格在两个 UITableView 之间传递数据

如何在swift ios中的两个自定义表格视图单元格之间添加间距?