自定义UITableViewCell
包含一个从Web异步加载的图像,并且其大小/ aspectRatio事先未知,因此无法在tableView:heightForRowAtIndexPath:
中返回准确的单元格高度。
我可以在委托方法中返回估计的高度,但需要在加载图像时通知tableView单元格高度的变化。我该怎么做?
reloadData
太重了,考虑到每次加载图像时,整个tableView都会刷新。reloadRowsAtIndexPaths:withRowAnimation:
也不好。由于细胞本身没有变化,只需要更新其高度。答案 0 :(得分:3)
希望除了[self.tableView reloadData];
之外你没有任何其他选择,无论如何不会重新加载所有数据 - 它只是重新加载可见的单元格。
答案 1 :(得分:1)
重新加载可见的表格单元格 - 是最好的一个。否则每次你需要完全重新加载表视图,然后它会把你放在第一个单元格上。然后以编程方式你应该向下滚动特定的被访问的cell.it是痛苦的事情。没有一个良好的用户界面。
[YourTableView reloadRowsAtIndexPaths:[YourTableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
仅重新下载完成单元格
[YourTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:YourImageCompletelyDownloadRow inSection:0]] withRowAnimation:UITableViewRowAnimationAutomatic];
答案 2 :(得分:1)
您可以通过调用
轻松地重新加载表格[tableview reloadData];
来自this回答:
UITableView类永远不会加载单元格,直到它们即将出现在屏幕上,即使你调用reloadData也是如此。
因此只会重新加载可见的单元格。