我正在开发一个类似twitter的客户端,并且有一个由UITableView实现的消息列表视图。对于每个单元,它可能需要加载一个动态大小映像,并且图像被加载异步。因此,当加载表视图时,图像的大小是未知的。
是否可以在加载图像后更新uitableviewcell的高度。
据我所知,更新高度的唯一方法是这个方法:- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath,但是它只是在第一次加载数据时调用。从性能考虑来看,这是合理的。不管怎样,有什么办法以后再改变高度吗?
谢谢你提供的任何信息!
最后,我使用"reloadRowsAtIndexPaths“来更新特定的行,您可以对隐藏的单元格进行尝试。
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:toReloadRows withRowAnimation: UITableViewRowAnimationNone];
[self.tableView endUpdates];但是,当更新可见单元格的高度时,单元格会抖动。所以最好先算出细胞的高度。
发布于 2011-03-16 08:38:56
heightForRowAtIndexPath:在执行reloadData时实际上会再次调用(您可以设置一个断点来验证)。你需要做的就是把你需要的条件逻辑放进去。
发布于 2011-03-26 19:47:30
尝试调用一个空更新块:
[self.tableView beginUpdates];
[self.tableView endUpdates];这似乎适用于可见细胞。我还在和隐藏的细胞做斗争。
发布于 2011-03-16 08:46:59
[tableView reloadData];做你想做的事。它将重新加载整个表datasource。因此您可以相应地设置rowHeight。
https://stackoverflow.com/questions/5322735
复制相似问题