UITableview单元格滚动时覆盖数据

时间:2014-04-14 06:50:40

标签: ios objective-c uitableview

我在UITableView中创建了单元格。单元格是从数组动态生成的,它也适合于单元格。 但是当我向下滚动并再次向上滚动时,相同数组的旧值将被替换为相同数组的最后一个值。 我希望序列的所有值都依赖于向上或向下滚动。以下是我的代码,请让我知道我在哪里犯错......

static NSString *simpleTableIdentifier = @"SimpleTableCell";

    LineDetailCustomCell *cell = (LineDetailCustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"LineDetailCustomCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

           return cell;

请查找带有问题说明的图片

enter image description here

当我向下滚动时,第二张图像出现,它可以正常向下滚动。

enter image description here

但是当我向上滚动标签时,会覆盖新值而不是第一张图片中显示的值。这意味着标签01,02,03 ......替换为下一个值

enter image description here

2 个答案:

答案 0 :(得分:0)

假设您有一个名为items的NSMutableArray类型的属性,并且其中包含数据(即字符串)

@property (strong, nonatomic) NSMutableArray *items;

然后在tableView:cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *simpleTableIdentifier = @"SimpleTableCell";

    LineDetailCustomCell *cell = (LineDetailCustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (!cell) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"LineDetailCustomCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
    NSString *item = [self.items objectAtIndex:indexPath.row];
    cell.titleLabel.text = item;
    return cell;
}

确保LineDetailCustomCell的重用标识符从Xib设置为SimpleTableCell。这是回收细胞所必需的。

答案 1 :(得分:0)

试试这个:

seq_printf(m, "\033[2J\033[1;H");