gpt4 book ai didi

ios - UITableview 的单元格中的重复数据

转载 作者:行者123 更新时间:2023-12-01 19:03:50 25 4
gpt4 key购买 nike

当我上下滚动表格 View 时,每个单元格中的数据变得重复且不可读。有人对以下有什么建议吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle:NSDateFormatterShortStyle];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(10, 12, 250, 20)];
UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(250, 12, 50, 20)];
label1.tag= 666;
label2.tag= 666;
[cell.contentView addSubview:label1];
[cell.contentView addSubview:label2];

// Configure the cell...
President *p = (President *)[self.importedRows objectAtIndex:indexPath.row];
label1.text = p.no;
label2.text = p.name;

UILabel* cellLabel = (UILabel*)[cell viewWithTag: 666];
cellLabel.text = [NSString stringWithFormat:p.no , p.name];


return cell;
}

最佳答案

dequeueReusableCellWithIdentifier缓存生成的单元格。因此,如果您请求在此单元格之前已经创建的单元格,则不会从头开始再次生成(这意味着您之前添加的标签已经存在!)。

因此,在添加标签时使用唯一编号标记它们:

label1.tag= 666;
label2.tag= 667;

在将它们添加到单元格之前,请按如下方式删除它们:
UIView *labelView = [cell.contentView viewForTag:666];
if (labelView != nil) {
[labelView removeFromSuperView];
}

对第二个标签做同样的事情。

关于ios - UITableview 的单元格中的重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com