重用自定义单元格

时间:2012-02-16 06:10:15

标签: iphone ios

我采用了自定义单元格,我没有在那里重复使用标识符。我在表视图中使用标识符,我在那里使用自定义单元格。但是,当我运行我的应用程序并在textfield中输入数据时,我滚动视图时数据被删除。我的单元格没有重复使用该数据。任何人都可以帮助我解决这个问题。谢谢!

自定义单元代码

-(UITableViewCell *)returnCellForEach:(UITableView *)tableView
{
    [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        myLabel = (UILabel *)[customCell.contentView viewWithTag:10];

    return customCell;
}

表视图'cellForRowAtIndexPath'代码

static NSString *CellIdentifier = @"Cell";

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Hello"] autorelease];
    }

这是我的错误。谢谢!

2 个答案:

答案 0 :(得分:1)

不应使用单元格来存储数据。如果用户在编辑字段中输入内容,则需要将内容复制到例如视图控制器中的成员变量。如果单元格被滚动到视图之外,它将被销毁,或者可能保留以供重用。无论哪种方式,您都不能再依赖该编辑字段了。

答案 1 :(得分:0)

我实际上没有得到你的问题,但我做了如下:

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = (CustomCell *)[[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
    }

myLabel = (UILabel *)[customCell.contentView viewWithTag:10];
//myLabel = cell.labelWithTag10;
myLable.text = @"Text";

它对我来说很好;