如何在 ViewController 上访问 UICollectionViewCell

How to reach UICollectionViewCell on ViewController

提问人:mertserkan 提问时间:8/10/2023 更新时间:8/13/2023 访问量:22

问:

我有一个包含 2 个 imageView 的 collectionViewCell。我从这个单元格中创建了 8 个。我有一个名为 Flip 的函数,它允许我更改 imageView。我想做的是,当游戏开始时,我的所有 8 个单元格都会显示出来(即 frontImageView),然后在 10 秒后它们全部反转。我无法从 ViewController 访问 CollectionViewCell。我希望我能够解释我的问题。

这是我在 CollectionViewCell 上的翻转代码

func flip() {
        
        UIView.transition(from: frontImageView, to: backImageView, duration: 0.3, options: [.transitionFlipFromLeft, .showHideTransitionViews], completion: nil)
        
    }

我尝试将静态放在图像视图的前面。 我尝试将cellForItemAt的indexPath分配给一个变量,并使用此变量将其转换为ColletcionViewCell,但它不起作用。

Swift 转换 UIChationViewCell

评论


答:

0赞 DonMag 8/13/2023 #1

让我们假设:

  • 您有一个带有 var 名称的UICollectionViewcollectionView
  • 集合视图单元格类已命名为GameCell
  • GameCell具有公共功能flip()

您可以这样做:

    let cells = collectionView.indexPathsForVisibleItems
    cells.forEach { idxPath in
        if let c = collectionView.cellForItem(at: idxPath) as? GameCell {
            c.flip()
        }
    }