gpt4 book ai didi

iphone - 自定义 UITableViewCell 未显示时始终为 null

转载 作者:行者123 更新时间:2023-12-01 19:21:30 27 4
gpt4 key购买 nike

我有一个 UITableView高度为 180 像素,一次只能显示 5 行,表格 View 包含自定义单元格。但是,我有 6 个单元格,这意味着只有在使用滚动时才会显示第六个单元格,当我尝试像这样遍历所有单元格时:

  for (int row = 0; row < [self.autoTableView numberOfRowsInSection:0]; row++)  {

NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:0];
UITableViewCell *cell = [self.autoTableView cellForRowAtIndexPath:cellPath];

if(!cell)
NSLog(@"NULL %i", row);

}

在运行时,如果我没有滚动,我会得到 NSLog控制台窗口中的语句: NULL 5 ,当我向下滚动以显示最后一个单元格时,我得到一个 NSLog声明说: NULL 0 , 我不断收到这个 NSLog当我上下滚动时,为什么会发生这种情况,尽管所有单元格都已经创建?
cellForRowAtIndexPath代码是:
static NSString *customCellIdentifier = @"customCell";
EditableTableDataRow *cell = nil;

cell = (EditableTableDataRow *)[tableView dequeueReusableCellWithIdentifier:customCellIdentifier];
if (cell == nil)
{
cell = [[[EditableTableDataRow alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:customCellIdentifier itemPadding:0 scaleToFill:NO] autorelease];
}

然后我在这个自定义单元格内的标签和文本字段上做各种事情,最后:
...

return cell;

非常感谢你。

最佳答案

这是默认行为。当未显示单元格时,它们会从内存中释放。
你对它们所做的每一个修改都应该在 cellForRowAtIndexPath: 中完成。方法,那是它们被创建的时候。将您的数据加载到内存中,以便在创建单元格时,它可以很快被填满。这就是您获得平滑滚动的方式。

关于iphone - 自定义 UITableViewCell 未显示时始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10203616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com