如何在uicollectionview中固定单元格的顺序

时间:2019-04-03 19:23:29

标签: swift uicollectionview

我有带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)
                    }
                }
            }
        }

但是当我尝试时,所有按钮都会随机更改其位置。有没有办法解决他们的订单。图片链接在评论中。

1 个答案:

答案 0 :(得分:0)

reloadData()collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell功能配合使用。谢谢拉姆