Различие 2 NSArray's для анимированного вставляет/удаляет в UITableView

В какой-то момент в моем Приложении, у меня есть NSArray, содержание которого изменяется. То содержание показывают в UITableView. Я пытаюсь найти способ найти разность между содержанием прежде и после NSArray, таким образом, я могу передать корректный indexPaths insertRowsAtIndexPaths:withRowAnimation: и deleteRowsAtIndexPaths:withRowAnimation: чтобы анимировать изменения приятно. Какие-либо идеи?

спасибо

8
задан Alexander Cohen 13 March 2010 в 20:04
поделиться

1 ответ

Вот что я пробовал, и, похоже, он работает, если у кого-то есть что-нибудь получше, я бы с удовольствием его увидел.

[self.tableView beginUpdates];

NSMutableArray* rowsToDelete = [NSMutableArray array];
NSMutableArray* rowsToInsert = [NSMutableArray array];

for ( NSInteger i = 0; i < oldEntries.count; i++ )
{
    FDEntry* entry = [oldEntries objectAtIndex:i];
    if ( ! [displayEntries containsObject:entry] )
        [rowsToDelete addObject: [NSIndexPath indexPathForRow:i inSection:0]];
}

for ( NSInteger i = 0; i < displayEntries.count; i++ )
{
    FDEntry* entry = [displayEntries objectAtIndex:i];
    if ( ! [oldEntries containsObject:entry] )
    [rowsToInsert addObject: [NSIndexPath indexPathForRow:i inSection:0]];
}

[self.tableView deleteRowsAtIndexPaths:rowsToDelete withRowAnimation:UITableViewRowAnimationFade];
[self.tableView insertRowsAtIndexPaths:rowsToInsert withRowAnimation:UITableViewRowAnimationRight];

[self.tableView endUpdates];
5
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: