我正在开发一个 iOS RSS 阅读器应用程序。我的应用程序实现了一个带有自定义部分标题的 UITableView:
UINib *sectionHeaderNib = [UINib nibWithNibName:@"HeadlineView" bundle:nil];
[self.newsTable registerNib:sectionHeaderNib forHeaderFooterViewReuseIdentifier:SectionHeaderViewIdentifier];
每个部分标题都用于显示文章标题。我可以选择在“已经看过”的文章和新文章之间进行切换。每次在选项之间切换时,表视图数据数组都会更改,因此我需要调用 UITableView ReloadData:
[self.newsTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];
当我调用此方法时,加载需要超过 1 秒(这似乎卡住了),因为它重新加载所有节标题而不是使用出队的节标题。当我只是滚动表格视图时,一切正常,出队工作正常。
每次我初始化一个节标题时,我都会设置 3 个手势识别器,这需要很长时间。但如果节标题出列,则手势识别器已经设置,因此速度很快。
这是出队代码:
NowsHeadlineHeaderView *sectionHeaderView = [self.newsTable dequeueReusableHeaderFooterViewWithIdentifier:SectionHeaderViewIdentifier];
我没有在单元格/部分加载中执行任何其他耗时的任务。
为什么当我使用 reloadData 时 tableview 一遍又一遍地初始化节标题,我该如何解决这个问题,这样它会更快