ios:Textfield在uitableview中复制数据

时间:2015-03-31 19:33:02

标签: ios objective-c uitableview uitextfield

每当我滚动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];
    }
}

3 个答案:

答案 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值,这可能是另一个原因,你得到相同的数据。