使用自定义单元格滚动时,uitableview上的行重复

时间:2016-06-06 06:02:02

标签: ios uitableview

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 NSString *cellIdentifier=@"menucell";

MenuCell *cell = (MenuCell*) [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

if (cell==nil)
    cell= [[MenuCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] ;

MenuModel *resturntent = (self.menuList)[indexPath.row];
cell.foodNameLbl.text = resturntent.MenuName;
cell.priceLbl.text = [NSString stringWithFormat:@"%@ %@",@"$" , resturntent.MenuRate];
cell.foodImage.image = [UIImage imageNamed:@"full_breakfast.jpg"];
return cell;
}

滚动uitextfields时,值会重复。

我需要帮助来解决这个问题

1 个答案:

答案 0 :(得分:1)

使用dequeueReusableCellWithIdentifier时,您的单元格将被重复使用。这意味着当用户滚动tableview时,移出屏幕的cell将被重复使用以显示即将移动到屏幕上的cell的内容。

尽管这有助于节省内存,但它导致的问题是cell在加载新cell的内容之前需要准备好显示。

在您的情况下,您似乎需要维护用户在textfield的{​​{1}}中输入的值。

因此,要解决您的问题,如果cell中的cells数量不足,请停止重复使用tableview。此外,只要用户在cell的{​​{1}}中输入值,请将其保存在textfieldcell' MenuModel'在您的情况下) 。并从模型中获取值并将其设置为array方法中的array,例如您为其他textfield设置的值。