• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 向 UICollectionView 动态添加内容

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:57:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个由 Web 服务支持的 UICollectionView。我最初将 100 个项目从服务加载到 Collection View 中。当用户到达 View 底部时,我会动态加载下一个“页面”内容。

这是可行的,但我的 collectionView 会闪烁并从顶部重新绘制整个 View 。我试图让它在 View 底部开始绘制新内容。

向collectionview添加新内容的代码:

- (void)insertIntoCollectionView: (int) itemCnt {

// only do the batchupdate for NON-initial load

if(curPage != 0) {
// Add items to main photos array, and update collectionview using batchUpdate
    [self.collectionView performBatchUpdates:^{

    // Get starting size before update
    int resultsSize = itemCnt;

    // Create a new array to hold the indexpath for the inserted data
    NSMutableArray *arrayWithIndexPaths = [NSMutableArray array];

    // Add indexpath objects to the new array to be added to the collection view
    for (int i = resultsSize; i < resultsSize + itemCnt; i++) {
        [arrayWithIndexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
    }
    // Update the collectionview
    [self.collectionView insertItemsAtIndexPaths:arrayWithIndexPaths];
}
    completion:nil];
} else {
    [self.collectionView reloadData];
}
curPage++;

有什么明显的吗?它在功能上可以工作,但在所有闪烁和重新绘制时看起来很糟糕。



Best Answer-推荐答案


好的,我自己解决了。我为 resultSize 变量使用了不正确的值。 for 循环应该从当前数组计数的末尾开始,并遍历我们添加的项目数,从而将它们添加到末尾。在构建 arrayWithIndexPaths 时,我从数组索引 1 的开头开始,导致它重新绘制整个 View 。

关于ios - 向 UICollectionView 动态添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030285/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap