将每个单元格设置在自己的组中

时间:2009-06-07 16:23:22

标签: iphone cocoa-touch uitableview

我的UITableViewCells占据了整个观看区域。我想使用分组表,因此单元格看起来有圆角。现在,如果我将部分的数量设置为大于1的部分,我会得到分组样式的部分数量,但每个部分中的所有单元格都会重复。如何设置表格,以便每个单元格都在一个部分?

此外,是否可以以编程方式将表格样式设置为分组?

2 个答案:

答案 0 :(得分:3)

关于你的第二个问题:

tableView.style = UITableViewStyleGrouped;

或者,如果您以编程方式创建它:

tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStyleGrouped];

对于你的第一个问题,我假设你正在设置这样的单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    ...
    setupCell(cell,indexPath.row);
    return cell;
}

其中setupCell是检查索引并相应地设置单元格的东西。但是,IndexPath会告诉您在哪个部分中设置

我还假设你在函数

中返回完整的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

您应该只返回1,因为您希望每个部分只有1行。

然后在设置单元格时,您需要检查indexPath.section而不是indexPath.row。行按部分从零开始,因此对cellForRowAtIndexPath的调用将具有如下所示的索引路径:

部分行
0,0 1,0 2,0,

而最初,当你只有一个部分时,它应该是:
0,0 0,1 0,2

你现在看到的是什么,因为你返回与部分相同的行数:
0,0 0,1 0,2

1,0 1,1 1,2,

2,0 2,1 2,2,

答案 1 :(得分:2)

实际上,你不能这样做:

tableView.style = UITableViewStyleGrouped;

因为style是readonly属性。