UITableView重新加载RowsatindExpaths在不应';T

UITableView重新加载RowsatindExpaths在不应';T,uitableview,ios,Uitableview,Ios,我在iOS应用程序中使用UITableView,最近发现了一个奇怪的问题 假设我的表的结构如下: section 1 header row section 2 header section 3 header row row ... (请注意,第2节没有行) 我正在通过对表中的行执行更新 [self.tv beginUpdates]; [self.tv reloadRowsAtIndexPaths:ip withRowAnimation:UITableViewRowAnima

我在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行:最后一节的第一行之外,此策略适用于my表中的每一行和每一节。当我更新这一行时(这确实使用了正确的索引路径),而不是没有得到动画,这一行会进行这种小小的跳跃,就像它在新行中滑动以替换旧行或其他东西一样。这一行稍微向上滑动,然后又向下滑动,就好像我在插入一行一样。我猜这与页眉计算有关,但我确实返回了heightForHeaderInSection的正确值


有人见过这种行为吗

我想知道在这个只重新加载的场景中是否需要BeginUpdate和EndUpdate。

我也遇到了同样的问题。解决方案是使用以下方法从表中获取单元格:

UITableViewCell*cell=[self.tableView cellforrowatinexpath:indexPath]

然后使用自定义设置方法手动刷新,或只需调用:

[cell setNeedsLayout]

有关详细信息,请参阅:


您是否尝试更改withRowAnimation参数,以检查它是否至少按照您要求的方式设置动画?实际上,它没有按照我告诉它的方式设置动画。无论我指定哪个动画,它都会执行小跳跃。这有什么意义吗?我也在iOS5中看到了。你找到解决方案了吗?我从来没有找到解决方案,没有。iOS 7上仍然存在同样的问题。你找到解决办法了吗?这个办法对我不管用。在NSFetchedResultsChangeMove中,我尝试更新单元格并调用moveRowatinexPath。