我有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;
}
答案 0 :(得分:0)
细胞永远不会“看不见”。当一个单元格从屏幕上移开时(因为滚动)它不会停留在屏幕上,它会被表格视图重新用于刚进入屏幕的单元格。
即。您可能有一个包含100个项目的表视图,但它只会创建大约10个单元格。
为此(以及许多其他原因),您不应该在单元格(或任何视图)中存储数据。
如果单元格中有文本字段,并且想要记住文本是什么,那么在编辑文本字段时(使用委托方法),您应该将文本存储到属性中以便可以访问它。 / p>
答案 1 :(得分:0)
您的tableview只能引用可见细胞。您无法中继表视图的动态内容。
如果您希望保留数据,则在单元格变为不可见时将它们存储在数组中。