每当我滚动tableview时,我的tableview单元格中的文本字段重复数据。文本字段再次重复每6行&再次。
如何使用自定义单元格从文本字段中删除重复数据。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *Identifier= @"ProductCell";
PlaceOrderTableViewCell * ProductCell = [ProductsTblView dequeueReusableCellWithIdentifier:Identifier];
if (ProductCell==nil)
{
ProductCell = [[PlaceOrderTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Identifier];
}
}
答案 0 :(得分:1)
它不是重复数据,您错误地使用UITableViewCell
。出于性能原因,单元格在离屏后重复使用,UITableViewCell
只应用于显示模型中的数据,当它被重用时,先前的数据将被新数据模型实体中的数据替换
您应该在问题中添加更多信息,如何设置单元格的值?
修改强>
如果您需要从UITextField
获取值,则应该专门UITextFieldDelegate
实施textFieldDidEndEditing:此外,您应该看看answer这解释了一个简单{ {1}} UITableView
实施。
此answer作为一些有趣的教程,您可能需要检查
答案 1 :(得分:1)
发生这种情况的原因是因为cells
被重用,以提高tableView
的速度。如果您想要超过1000个单元格,那么它必须加载所有单元格然后显示它们。当它被重用时,它只加载那些必须显示的那些。
解决方法是创建一个数组并执行如下操作:
[textField setText:[myArray objectAtIndex:indexPath.row]];
但是为了更灵活和耗时,可以创建NSDictionary
,并为适当的indexPath存储适当的文本。像这样:
[textField setText:[my_dict objectForKey:indexPath.row];
答案 2 :(得分:0)
当您在文本字段中获取相同的数据时,这意味着您将获得出列单元格,您需要更改模型类以根据单元格的索引路径提供文本字段数据,如下所示
textfiled.text = [data objectAtIndex:indexPath.row];
注意:在创建单元格时不要指定textfield.text值,这可能是另一个原因,你得到相同的数据。