如何重新加载一个单元格/行并设置其动画?

欢迎麦克斯

推荐答案

使用以下UITableView实例方法:

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

必须指定要重新加载的NSIndexPaths中的NSArray.如果你只是想重新加载.如果你只想重新加载一个电池,那么你可以提供一个NSArray只容纳一个NSIndexPath.例如:

NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:3 inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[myUITableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];

您可以查看UITableViewRowAnimation枚举,了解所有可能的行刷新动画方式.如果不需要任何动画,则可以使用值UITableViewRowAnimationNone,如示例所示.

重新加载特定行比简单地获得想要的动画效果有更大的优势.您还可以获得巨大的性能提升,因为只有真正需要重新加载的单元才能刷新、重新定位和重新绘制数据.根据单元格的复杂程度,每次刷新单元格时可能会有相当大的开销,因此缩小刷新量是一个必要的优化,应该尽可能使用.

Objective-c相关问答推荐

如何在for (id item in items)objective-c 循环中获取数组索引?

如何使用格式化占位符本地化字符串?

常量的 k 前缀从何而来?

静态和动态单元格的 UITableView 混合?

如何使用整数值作为键在 NSMutableDictionary 中设置值?

捕获组在 NSRegularExpression 中不起作用

如何确定 UICollectionView flowLayout 中单元格之间的间距

判断 NSNumber 是否为 NaN

如何在嵌入 UIViewController 的 UITableView 中直观地创建和使用静态单元格

立即检测 iOS 方向变化

仅在 UIView 顶部的圆角

深入了解保留周期

无法在导航栏中心设置titleView,因为返回按钮

无法将 searchBar 设置为 firstResponder

iPhone 正确使用 Application Delegate

根据文本量更改 UITableViewCell 高度

如何将 tintColor 应用于 UIImage?

如何获得设备的比例因子?

未调用 cellForItemAtIndexPath 但 numberOfItemsInSection 调用

UICollectionView:如何检测滚动何时停止