Как исправить порядок ячеек в uicollectionview - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть viewController с collectionView - 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 голосов
/ 03 апреля 2019

reloadData() работает в сотрудничестве с функцией collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell.Спасибо, Ларм

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...