如何在iOS sdk中访问隐形自定义UITableViewCell?

时间:2014-03-25 08:23:12

标签: ios iphone uitableview

我有UITableView个自定义UITableviewCell。每个自定义单元格都包含UITextField。我使用以下代码访问自定义tableView单元格

CustomCell *nextCell = (CustomCell*)[self.mTableView cellForRowAtIndexPath:nextIndexPath];

此代码适用于VISIBLE自定义单元格,我可以在控制台中看到这样的值......

CustomCell: 0x10642aa0; baseClass = UITableViewCell; frame = (0 278.435; 320 40); autoresize = W; layer = <CALayer: 0x10642c40>”

但对于INVISIBLE单元格,控制台值如此“null”?为什么会这样?请帮帮我。我正在使用带xcode 5的ios7。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *CellIdentifier = @"Cell";
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.textfiled1.returnKeyType = UIReturnKeyNext;
        cell.textfiled1.delegate = self;
    }
    return cell;
}

2 个答案:

答案 0 :(得分:0)

细胞永远不会“看不见”。当一个单元格从屏幕上移开时(因为滚动)它不会停留在屏幕上,它会被表格视图重新用于刚进入屏幕的单元格。

即。您可能有一个包含100个项目的表视图,但它只会创建大约10个单元格。

为此(以及许多其他原因),您不应该在单元格(或任何视图)中存储数据。

如果单元格中有文本字段,并且想要记住文本是什么,那么在编辑文本字段时(使用委托方法),您应该将文本存储到属性中以便可以访问它。 / p>

答案 1 :(得分:0)

您的tableview只能引用可见细胞。您无法中继表视图的动态内容。

如果您希望保留数据,则在单元格变为不可见时将它们存储在数组中。