我在我的 iOS 应用程序中使用 UITableView,最近遇到了一个奇怪的问题。
假设我的表结构如下:
section 1 header
row
section 2 header
section 3 header
row
row
...
(注意第 2 部分没有行)
我正在通过
对表中的行执行更新 [self.tv beginUpdates];
[self.tv reloadRowsAtIndexPaths:ip withRowAnimation:UITableViewRowAnimationNone];
[self.tv endUpdates];
我不想发生任何动画。我只想更新该行。问题在于此策略适用于我的表中的每一 行和部分, 第 3 部分第 1 行除外:最后一部分的第一行。当我更新这一行(它确实使用了正确的 indexPaths)时,该行并没有没有动画,而是做了这个小跳跃,就像它在新行中滑动以替换旧行或其他东西一样。该行稍微向上滑动,然后又向下滑动,就好像我正在插入一行一样。我猜它与标题计算有关,但我确实为 heightForHeaderInSection 返回了正确的值。
有人见过这种行为吗?
最佳答案
我想知道在这种仅重新加载的情况下是否需要 beginUpdates 和 endUpdates。
关于UITableView reloadRowsAtIndexPaths 在不应该的时候执行动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557930/