UITableView 强制 sectionIndex 更新而不调用 reloadData
Posted
技术标签:
【中文标题】UITableView 强制 sectionIndex 更新而不调用 reloadData【英文标题】:UITableView force sectionIndex to update without calling reloadData 【发布时间】:2015-06-10 01:02:05 【问题描述】:我正在从PHChange
实例修改我的UITableView
的数据源,这工作正常。我不明白的是,我无法更新 UITableView
右侧的 sectionIndex,除非您使用:reloadData
重新加载整个 UITableView
。
还有其他方法可以强制更新UITableView
右侧的sectionIndex吗?如果我手动调用:sectionIndexTitlesForTableView:
我确认我正在取回新数据,但是右侧的旧 sectionIndex 在视觉上没有变化,这是我需要的。
代码:
PHFetchResultChangeDetails *changeDetails = [changeInstance changeDetailsForFetchResult:oldFetch];
if (changeDetails)
PHFetchResult *fetchResultAfterChange = changeDetails.fetchResultAfterChanges;
if (fetchResultAfterChange.count < 1)
[subArray removeObjectAtIndex:subIdx];
dispatch_async(dispatch_get_main_queue(),^
NSIndexPath *path = [NSIndexPath indexPathForRow:subIdx inSection:idx];
[self.albumsTableView deleteRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationNone];
// Confirmed data is updating
NSLog(@"%@",[self sectionIndexTitlesForTableView:self.albumsTableView]);
// Does nothing
[self.albumsTableView setNeedsDisplay];
);
【问题讨论】:
【参考方案1】:试试这个功能
- reloadSectionIndexTitles
此方法为您提供了一种在插入或删除节后更新节索引的方法,而无需重新加载整个表。
【讨论】:
不知道我怎么没有在自动代码完成中看到这个。谢谢! 这个方法不常用。:) 这是一种救命方法以上是关于UITableView 强制 sectionIndex 更新而不调用 reloadData的主要内容,如果未能解决你的问题,请参考以下文章
强制 UITableView 为所有单元格调用 cellForRowAtIndexPath:
如何强制 uitableview 调整单元格的大小(在停用高度约束后)?
如何在保持 UISearchBar 处于活动状态的同时强制 UITableView 重新加载数据?
使用自动布局强制 UITableView 中的 UIView 填满屏幕