objective-c - 如何重新加载和动画只有一个 UITableView 单元格/行?

标签 objective-c cocoa-touch uitableview animation

如何仅重新加载一个单元格/行并为其设置动画? 现在我下载了一些文件。每次文件下载完成时,我称它为完成委托(delegate)并调用 [tableview reload]。 但随后整个表重新加载。以及如何为表格设置动画,使其不会闪烁。例如淡入淡出效果。

问候马克斯

最佳答案

使用下面的UITableView实例方法:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

您必须指定要重新加载的 NSIndexPathsNSArray。如果你只是想重新加载。如果您只想重新加载一个单元格,那么您可以提供一个仅包含一个 NSIndexPathNSArray。例如:

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/

相关文章:

objective-c - dateByAddingTimeInterval 参数语法

ios - 字符串加密错误

iphone - 使用 yajl-objc 编码自定义类

ios - UIScrollView 似乎在 xcode 6 (iOS 8) 中不起作用

ios - 如何使从 View Controller 接收的字符串显示在另一个 View Controller 的 TableView 中

objective-c - for 循环中的表达式结果未使用警告

ios - 更改 UIImagePicker 纵横比

ios - CAGradientLayer 显示完全半透明

ios - 作为 tableview 标题的 UIImageView 最初大小错误?

iOS 表格 View 滚动问题