在reloadSections之后,TableView部分变为隐藏状态

时间:2013-09-27 15:09:59

标签: uitableview ios7

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

之后重新启动
[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];时,一切都很好,但我需要动画。

2 个答案:

答案 0 :(得分:4)

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

从某种意义上说,这是一个“静态”单元吗?在这种情况下,问题可能是这样的:

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

如果通过总是重复使用单元格而不是使用相同的引用来修复此问题,我知道这并不总是最佳的。

答案 1 :(得分:1)

Calling [tableView reloadData] right after [tableView reloadSections:withRowAnimation] fixes it without significantly affecting the animation.