ios - 如何在 Swift 中重置 UICollectionView

标签 ios swift uicollectionview uicollectionviewcell

我正在使用 UICollectionView 开发纸牌游戏。我覆盖了 UICollectionViewCell 的 draw() 函数以在加载单元格时排列我的图像。每个新游戏,我都会更改游戏中的卡片数量。所以细胞的数量和大小会发生变化。由于我使用的第三方库,我必须在 viewWillAppear() 方法中对 UICollectionView 执行所有操作。我的问题是如何重置之前在 UICollectionView 上完成的所有工作。我想在每场比赛中清除 UICollectionView,而无需再次加载 UIViewController。想在 viewWillAppear() 方法中完成。我想清除 UICollectionView,因为如果在新游戏中没有清除 UICollectionView,我的图像会重叠。

注意:我像下面这样从 UICollectionView 中删除了所有 subview ,但它没有用

   let subViews = gameCollectionView.subviews

    if subViews != nil {
        for view in subViews {
            view.removeFromSuperview()
        }
    }

最佳答案

清除集合就是清除它的数据源数组,如

arr = []
gameCollectionView.reloadData()

如果您需要清除单元格,请在 cellForRowAt 中执行此操作

let cell = ///
cell.contentView.subviews//// clear here

或覆盖

override func prepareForReuse() {
 super.prepareForReuse()
 // clear any subview here
}

如果您在每次运行 cellForRowAt 时都正确地为集合单元格的所有属性分配值而不添加 subview ,那么您将没有重叠

关于ios - 如何在 Swift 中重置 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54188027/

相关文章:

javascript - PWA iOS 烦人的横向 20px 差距

ios - 获取相对于 SKEffectNode 屏幕的绝对位置,因为它被 SKWarpGeometryGrid 扭曲

objective-c - 带有 Mac 服务器的 iOS 客户端应用程序

ios - UICollectionView - 删除多余的间距

ios - 如何添加被拒绝进行测试的旧版本

ios - 如何使用 NSXMLParser 从 SWIFT 中的 XML 获取特定属性

ios - 绕过 "Open in..."菜单直接在应用程序中打开 iOS 邮件附件

ios - searchBarSearchButtonClicked url 返回 nil

iphone - 滚动时调整 UICollectionView 的大小

ios - 加载 UICollectionViewCell Swift 4 时单元格闪烁问题