gpt4 book ai didi

xcode - UICollectionView reloadItemsAtIndexPaths

转载 作者:行者123 更新时间:2023-12-04 23:02:03 27 4
gpt4 key购买 nike

我一直试图围绕 UICollectionView 的 reloadItemsAtIndexPaths 方法进行思考。

我有一个名为objectsArray 的对象数组。当用户滚动到我的集合 View 底部时,我从后端获取下一批对象并通过调用 [objectsArray addObjectsFromArray:objects] 将其附加到 objectsArray;这样做之后,我调用了 [self.collectionView reloadData],我知道这很昂贵。

我想使用下面的代码进行优化,但在调用 reloadItemsAtIndexPaths 时出现断言失败。

    if (self.searchPage == 0) {
parseObjectsArray = [[NSMutableArray alloc] initWithArray:relevantDeals];
[self.collectionView reloadData];

} else {

NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
for (int i = 0; i < [relevantDeals count]; i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
[indexPaths addObject:indexPath];
}

[parseObjectsArray addObjectsFromArray:relevantDeals];
[self.collectionView reloadItemsAtIndexPaths:indexPaths];
//[self.collectionView reloadData];
}

错误:
* 断言失败 -[UICollectionView _endItemAnimations],/SourceCache/UIKit/UIKit-2903.2/UICollectionView.m:3716

非常感谢任何帮助/提示。

谢谢!

最佳答案

看起来正在添加的项目是新的,换句话说,您正在添加以前不存在的项目。在这种情况下,只需将 reloadItemsAtIndexPaths:indexPaths 替换为 insertItemsAtIndexPaths:

[self.collectionView insertItemsAtIndexPaths:indexPaths]; // Use this for newly added rows
//[self.collectionView reloadItemsAtIndexPaths:indexPaths]; // Use this for existing rows which have changed

关于xcode - UICollectionView reloadItemsAtIndexPaths,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083382/

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