1

我正在尝试为分组的 UITableView 中的每个单元格创建索引计数,以便我可以将单元格值存储在数组中的正确位置,但我无法计算出它所需的数学:

索引运行如下,我的计数需要是:

indexPath.section = 0   
  indexPath.row = 0     cellIndex = 0
  indexPath.row = 1     cellIndex = 1
  indexPath.row = 2     cellIndex = 2
  indexPath.row = 3     cellIndex = 3
  indexPath.row = 4     cellIndex = 4

indexPath.section = 1
  indexPath.row = 0     cellIndex = 5
  indexPath.row = 1     cellIndex = 6
  indexPath.row = 2     cellIndex = 7
  indexPath.row = 3     cellIndex = 8

到目前为止,这是我的方程式,但它无法正常工作:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger cellIndex = numberOfSections * indexPath.section + indexPath.row;
}
4

3 回答 3

1

我想出了一个简单的方法来实现这一点:

//Number of cells before this
int cellsBefore = 0;
for(int i = indexPath.section - 1; i >= 0; i--) {
    cellsBefore += [tableView numberOfRowsInSection:i];
}
//Calculate cellIndex count
NSInteger cellIndex = cellsBefore + indexPath.row;
于 2013-07-06T09:59:27.227 回答
0

您可以使用TLIndexPathTools。该类TLIndexPathDataModel可以自动将项目组织成部分,并且有许多方便的 API 来简化视图控制器代码。例如,您将获得这样的项目总数:

self.indexPathController.items.count;

有几个示例项目展示了不同的用例。JSON 示例项目sectionNameKeyPath演示了使用与工作原理类似的属性将JSON 数据组织成部分NSFetchedResultsController(除了不需要使用 TLIndexPathTools 按部分对项目进行预排序)。也可以通过创建TLIndexPathSectionInfo实例显式创建部分,包括空部分。请参阅Section Info 示例项目

于 2013-07-06T02:41:52.297 回答
0

我认为您应该更改numberOfSections * indexPath.sectionnumberOfCellsPerSection * indexPath.section. 根据您对答案的评论,您可以将 uitextfield 值存储到单元格的相应实体中,而不是使用数组。

于 2013-07-06T01:25:18.660 回答