我有带collectionView的viewController-15个单元格,都是一种类型。单元格内部是带有标题或挂锁(锁定章节)中数字的按钮。首次加载此视图时,一切正常,单元格顺序正确(1-15)。当我单击按钮时,将打开带有章节的新视图。从当前完成的章节返回上一视图时,我需要解锁下一个(将其标题更改为数字,关闭挂锁图片并启用用户交互)。我称这个功能为
func updateButtons() {
for i in 0..<chapterCollectionView.visibleCells.count {
if let cell = chapterCollectionView.visibleCells[i] as? ExampleCollectionViewCell {
if i <= PLAYERS[ACTUAL_PLAYER].progress {
cell.button.setTitle(String(i + 1), for: .normal)
cell.button.isUserInteractionEnabled = true
cell.button.setImage(nil, for: .normal)
} else {
cell.button.setTitle("", for: .normal)
cell.button.isUserInteractionEnabled = false
if self.view.traitCollection.horizontalSizeClass == .regular && self.view.traitCollection.verticalSizeClass == .regular {
cell.button.setImage(UIImage(named: "padlock1"), for: .normal)
} else {
cell.button.setImage(UIImage(named: "padlock"), for: .normal)
}
}
}
}
但是当我尝试时,所有按钮都会随机更改其位置。有没有办法解决他们的订单。图片链接在评论中。
答案 0 :(得分:0)
reloadData()
与collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
功能配合使用。谢谢拉姆