gpt4 book ai didi

cocoa-touch - UITableView中动画插入/删除的2个NSArray的差异

转载 作者:行者123 更新时间:2023-12-04 08:00:27 26 4
gpt4 key购买 nike

在我的应用程序中的某个时刻,我有一个 NSArray,其内容发生了变化。这些内容显示在 UITableView 中。我试图找到一种方法来找到 NSArray 之前和之后内容之间的差异,以便我可以将正确的 indexPaths 传递给 insertRowsAtIndexPaths:withRowAnimation: 和 deleteRowsAtIndexPaths:withRowAnimation: 以使更改很好地动画化。有任何想法吗?

谢谢

最佳答案

这是我尝试过的,它似乎有效,如果有人有更好的东西,我很乐意看到它。

[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];

关于cocoa-touch - UITableView中动画插入/删除的2个NSArray的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com