【发布时间】:2013-09-06 22:56:59
【问题描述】:
我正在开发一个 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 会一遍又一遍地初始化节标题,我该如何解决这个问题,这样它会更快
【问题讨论】:
标签: iphone ios objective-c uitableview