Okidoke。这是我的问题:我设置了一系列复杂的UITableViewCells来显示来自新闻源(哈欠)的故事。我想要发生的是,细胞背景图像和高度在选择时改变(作为标记故事已被阅读的一种方式)。
现在,在设置dequeueing之前,我可以使用一个简单的[self.tableView reloadData]来完成此操作。这似乎与出列的细胞无关;重新加载表视图不会重绘单元格以匹配其更改的状态。
我已经尝试了reloadRowsAtIndex-虽然这很有效 - 但对于用户点击的第一个单元格来说,在此之后它会变得不稳定:有时单元格会正确重新加载,有时不会重新加载。
显然,每个故事都是一个NSMutableDictionary对象。我正在使用NSNumber对象来跟踪故事是否已被阅读。
我会发布代码,如果有人要求我会,但我正在寻找可以在任何UITableViewController中实现的通用解决方案(分享爱情)。
所以,简单地说:如何在选择时可靠地重绘复杂的细胞?
答案 0 :(得分:0)
尝试给每个单元格一个唯一的ID以便出列工作,如果你为每个单元格使用一个唯一的id,那么你的单元格应该以它们改变的状态返回,所以20个单元格= 20个,希望这有帮助
答案 1 :(得分:0)
假设您有索引路径,您可以访问单元格并直接操作它:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// handle the selection...
UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
if (nil != cell) {
//
// now update the cell to reflect the new state
//
}
}