0

我正在从一个实例修改我UITableView的数据源,这工作正常。我不明白的是,除非您使用以下命令重新加载整个部分,否则我无法获取要更新的PHChangesectionIndex :。UITableViewUITableViewreloadData

还有其他方法可以强制更新右侧的 sectionIndexUITableView吗?如果我手动调用: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];
        });
    }
}
4

1 回答 1

2

试试这个功能

- reloadSectionIndexTitles

此方法为您提供了一种在插入或删除节后更新节索引的方法,而无需重新加载整个表。

于 2015-06-10T01:13:15.230 回答