UICollectionView更新单个单元格

 手机用户2602905043 发布于 2023-02-13 18:00

我正在尝试更新内部的单个单元格UICollectionView,特别是我只是尝试更新引爆的特定单元格中的图像cell.imageView.[self.collectionView reloadData]不是一个真正的选择,因为它使整个集合视图闪烁.似乎[self.collectionView beginUpdates]不是一件好事UICollectionView.

我知道我可以使用:

[self.collectionView performBatchUpdates:^{
    //do something
} completion:nil];

我不确定在完成块内放置什么来更新某个单元格imageView.这一切都是在内部完成的didSelectItemAtIndexPath.我也没有使用NSFetchedResultsController.有任何想法吗?

3 个回答
  • 请参见“ iOS的Collection View编程指南”中的插入,删除和移动节和项目:

    要插入,删除或移动单个节或项目,必须遵循以下步骤:


    更新数据源对象中的数据。调用集合视图的适当方法以插入或删除节或项。在通知任何更改之前,更新数据源至关重要。收集视图方法假定您的数据源包含当前正确的数据。如果没有,则收集视图可能会从您的数据源接收到错误的项目集,或者询问不存在的项目并使应用程序崩溃。


    因此,在您的情况下,必须先将图像添加到集合视图数据源,然后再调用insertItemsAtIndexPaths。然后,收集视图将要求数据源委托函数提供所插入项目的视图。

    2023-02-13 18:01 回答
  • - (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths

    这是重新加载特定的方法indexPaths在你的collectionView

    2023-02-13 18:02 回答
  • Dinesh的回答是现实的.但是为了避免在重新加载(也称为"闪烁")时出现不需要的动画,请使用:

    BOOL animationsEnabled = [UIView areAnimationsEnabled];
    [UIView setAnimationsEnabled:NO];
    [myCollectionView reloadItemsAtIndexPaths:myIndexPaths];
    [UIView setAnimationsEnabled:animationsEnabled];
    

    2023-02-13 18:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有