【发布时间】:2019-06-08 19:49:06
【问题描述】:
我正在使用 UICollectionView 开发一款纸牌游戏。我覆盖 UICollectionViewCell 的 draw() 函数以在加载单元格时排列我的图像。每个新游戏,我都会更改游戏中的卡牌数量。所以细胞的数量和大小会发生变化。由于我使用了第三方库,我必须在 viewWillAppear() 方法中为 UICollectionView 执行所有操作。我的问题是如何重置之前在 UICollectionView 上完成的所有工作。我想在每次游戏期间清除 UICollectionView 而无需再次加载 UIViewController。想在 viewWillAppear() 方法中进行。我想清除 UICollectionView,因为如果在新游戏中没有清除 UICollectionView,我的图像会重叠。
注意:我从 UICollectionView 中删除了所有子视图,如下所示,但它不起作用
let subViews = gameCollectionView.subviews
if subViews != nil {
for view in subViews {
view.removeFromSuperview()
}
}
【问题讨论】:
-
是否可以为加载数据的 UICollectionView 创建一个类,然后删除 UICollectionView 并将其重新加载到 UIView 以重新加载它。我不知道 reloadData 始终是我使用的方法,但你说你不能使用它
-
我不明白您的收藏视图如何工作或应该如何工作。你到底想清楚什么?什么是第三方库?你在 viewWillAppear 中做了哪些操作?我认为目前没有足够的信息可以帮助您。
-
不要覆盖
UICollectionView的draw方法。为什么要删除集合视图的子视图?你所做的一切听起来都不对。 -
您将图像添加到哪个视图?
-
我将图像添加到 UICollectionViewCell 的 contentView @RobertDresler 的 draw 方法中
标签: ios swift uicollectionview uicollectionviewcell