我的UITableViewCells占据了整个观看区域。我想使用分组表,因此单元格看起来有圆角。现在,如果我将部分的数量设置为大于1的部分,我会得到分组样式的部分数量,但每个部分中的所有单元格都会重复。如何设置表格,以便每个单元格都在一个部分?
此外,是否可以以编程方式将表格样式设置为分组?
答案 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属性。