所以我得到它通常不赞成修改的cellForRowAtIndexPath外的小区,但这里是我:修改静态细胞外的cellForRowAtIndexPath而无需创建新的细胞
我有一个作为索引静态表的问题(1-33)。每一行都有一个问题和一个详细的披露指标。所有这些都是手动输入到平板上。
我有一个文件,列出每个问题和一些属性,如问题已被回答。
当这个屏幕加载(viewDidAppear)我想检查是否每个这些问题都已经加载,如果是的话,将细节指标切换到复选标记。
现在这适用于前5个细胞。如果我回答问题并回来,那么会检查更多单元格(即使这些问题尚未得到解答)。这是未定义的行为,因为我在cellForRowAtIndexPath之外访问它吗?
这里是我用来访问和更改单元格中的代码:
-(void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (question1Answered)
{
UITableViewCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:3]];
[cell1 setAccessoryType:UITableViewCellAccessoryCheckmark];
}
}
再次,它的工作的第5个元素,那么剩下的就不会不管我做什么改变。然后,如果我去问一个问题,并返回它显示更多的选择。奇怪的行为...
编辑:我只注意到上述代码的作品,但它只更新当前在屏幕上的单元格。所以如果我向下滚动,离开并回来,所有可见的单元格都会有复选标记。是否有强制刷新所有单元格的方法,即使它们不可见?
感谢您的任何和所有帮助...
-David