自动递增到不同节表中的每个单元格

时间:2016-04-06 09:10:20

标签: ios objective-c uitableview

我想在表格视图中为每个单元格设置一个数字,并且我有不同的部分,因此无法使用indexPath.row

目前我正在使用一个变量count并在cellForRowAtIndexPath count++中增加它。

但在滚动表格时会刷新。

如何为每个单元格设置自动增量编号。

4 个答案:

答案 0 :(得分:2)

cellForRowAtIndexPath上尝试此操作..将计算前一部分及其行,并添加当前行

NSInteger cellNumber = indexPath.row;
    for (int i =0; i<indexPath.section; i++) {
        cellNumber += [tableView numberOfRowsInSection:i];

    }

答案 1 :(得分:1)

实例变量不起作用。正如您的问题所述,您的索引应该可以在cellForRowAtIndexPath内的indexPath(行和部分)中进行计算。

试试这个:

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];

    NSInteger count = 0;

    for (NSInteger sec=0; sec < indexPath.section; sec++) {

        NSInteger rows = [tableView numberOfRowsInSection:sec];
        count += rows;
    }

    count += indexPath.row + 1;

    NSLog(@"Current row is: %ld", (long)count);

    return cell;
}

答案 2 :(得分:0)

复制并粘贴代码: -

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
                              reuseIdentifier:@"Cell"];
}

// Configure the cell...
NSInteger cellNumber = indexPath.row;
for (int i =0; i<indexPath.section; i++) {
    cellNumber += [tableView numberOfRowsInSection:i];
}
cell.textLabel.text = [NSString stringWithFormat:@"%ld", (long)cellNumber];

return cell;
}

答案 3 :(得分:0)

尝试组合

NSString *string = [NSString stringWithFormat:@"%@%@",@(indexPath.section),@(indexPath.row)];
cell.tag = [string intValue];

您将始终获得一个可供参考的唯一编号。