UITableView принудительно обновляет sectionIndex без вызова reloadData
Я модифицирую свой UITableView
источник данных из PHChange
экземпляр, и это прекрасно работает. Что я не понимаю, так это то, что я не могу получить sectionIndex справа от UITableView
обновить, если вы не перезагрузите весь UITableView
с: reloadData
,
Есть ли другой способ принудительно обновить sectionIndex справа от UITableView
? Если я позвоню вручную: sectionIndexTitlesForTableView:
Я подтверждаю, что я получаю свежие данные, однако старый раздел Index справа визуально не меняется, что мне и нужно.
Код:
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
Этот метод дает вам возможность обновить индекс раздела после вставки или удаления разделов без перезагрузки всей таблицы.