我从后端获取json数据,并在tableview中显示它们。 每个对象都显示在一个单元格中,一些对象具有相同的名称,其他对象具有不同的名称。
问题是当我滚动tableview时,对象名称正在改变。我在cellForRow atIndex路径中的代码:
static NSString *cellIdentifier = @"cell2";
ProccessingOrderTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
Order *order = self.orderArray[indexPath.row];
NSString *role = [NSUserDefaults.standardUserDefaults objectForKey:@"userRole"];
if([role isEqualToString:@"brand.operator"]){
cell.branchName.hidden = NO;
NSString *roleDisplay = [NSString stringWithFormat:@"%@%@", @"Branch name: " ,order.branch.name ] ;
cell.branchName.text = roleDisplay;
} else if([role isEqualToString:@"corporate.operator"]){
cell.branchName.hidden = NO;
NSString *roleDisplay = [NSString stringWithFormat:@"%@%@ \n%@%@", @"Branch name: " , order.branch.name,@"Brand name: ",order.branch.brand.name ] ;
cell.branchName.text = roleDisplay;
} else {
cell.branchName.hidden = YES;
}
字段" cell.branchName.text"正在改变滚动,
有什么想法吗?
答案 0 :(得分:0)
在UITableView和UICollectionView中滚动时,将重用Cell。因此,您可以看到旧文本的小数秒,并更新为正确的值。
使用UITableViewCell方法的prepareForReuse
在重用之前清除textFields以避免此类问题
在ProccessingOrderTableViewCell
写
-(void) prepareForReuse {
[super prepareForReuse];
//clear your textfields here
self.branchName.text = @"";
//clear/reset other UI components as well
}