6

我的问题如下:有一个由标题组成的表。当您单击标题时,它会在之后重新启动

[self.tableView reloadSections: [NSIndexSet indexSetWithIndex: section] withRowAnimation: UITableViewRowAnimationAutomatic];

实际上,在早期版本(iOS 6.1.3 及更低版本)中,单元重新加载并且一切正常。在 iOS7 上,单元格变得隐藏。它是什么以及如何解决它?不仅是被点击的单元格,还有下一个位置(更低或更高)。

<MyHeaderCell: 0x146ea600; baseClass = UITableViewCell; frame = (0 0, 320 75); hidden = YES; autoresize = W; gestureRecognizers = <NSArray: 0x146e10c0>; layer = <CALayer: 0x146e95d0 »

基本上,这是日志中的问题之一。可以清楚地看到细胞被隐藏起来。

尽管如此,当我使用[self.tableView reloadData];一切都很好,但我需要动画。

4

2 回答 2

8

这是一个老问题,但我想我知道是什么原因造成的。

从您自己保留对它的引用的意义上说,这是一个“静态”单元格吗?在这种情况下,问题可能是这样的:

当您进行动画重新加载时,表格视图将淡出现有单元格,同时淡入新单元格。问题是,当“新”单元格与旧单元格完全相同时,同一个单元格将同时淡入和淡出!在您的情况下,淡出动画优先并且单元格被隐藏。

如果通过始终重用单元而不是使用相同的参考来解决此问题,但是,我知道这并不总是最佳的。

于 2013-12-10T10:09:11.393 回答
1

修复[tableView reloadData]后立即调用,不会显着影响动画。[tableView reloadSections:withRowAnimation]

于 2015-06-26T10:27:20.507 回答