2013-09-27 51 views
5

我的问题是以下内容:有一个表头由标题组成。当你点击标题,之后TableView部分隐藏后重新加载部分

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

+0

因此,单击标题并触发重新加载,并且“不仅是单击的单元格”?我很困惑,你需要展示更多的代码。 –

回答

3

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

这是一个“静态”单元,意思是说你自己保持对它的引用?在这种情况下,问题可能是这样的:

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

但是,如果通过总是重复使用单元而不是使用相同的引用来解决这个问题,那么我知道这并不总是最佳的。

0

[tableView reloadSections:withRowAnimation]之后调用[tableView reloadData]可以修复它,而不会显着影响动画。