如何仅重新加载一个单元格/行并为其设置动画? 现在我下载了一些文件。每次文件下载完成时,我称它为完成委托(delegate)并调用 [tableview reload]。 但随后整个表重新加载。以及如何为表格设置动画,使其不会闪烁。例如淡入淡出效果。
问候马克斯
最佳答案
使用下面的UITableView
实例方法:
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
您必须指定要重新加载的 NSIndexPaths
的 NSArray
。如果你只是想重新加载。如果您只想重新加载一个单元格,那么您可以提供一个仅包含一个 NSIndexPath
的 NSArray
。例如:
NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:3 inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[myUITableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
您可以查看 UITableViewRowAnimation
枚举,了解所有可能的行刷新动画方式。如果您不想要任何动画,则可以使用值 UITableViewRowAnimationNone
,如示例中所示。
与简单地获得您想要的动画效果相比,重新加载特定行具有更大的优势。您还可以获得巨大的性能提升,因为只有您真正需要重新加载的单元格才会刷新、重新定位和重新绘制其数据。根据单元格的复杂性,每次刷新单元格时都会产生相当大的开销,因此减少刷新次数是一项必要的优化,应尽可能使用。
关于objective-c - 如何重新加载和动画只有一个 UITableView 单元格/行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418655/