Изменить представление во всех ячейках представления коллекции - PullRequest
2 голосов
/ 29 марта 2020

У меня есть представление коллекции, где каждая ячейка имеет видео (воспроизводится через AVPlayer) и красный круг. При нажатии кнопки в контроллере представления цвет всех кругов ячейки должен быть изменен на синий, а затем при повторном нажатии изменить его на красный.

Итак, что мне нужно сделать, это : когда кнопка нажата в представлении контроллера, измените представление круга во всех ячейках, видимых или нет. Причина, по которой я говорю видимый или нет, заключается в том, что я показываю только одну ячейку на экране за раз. Пользователь перемещается к go к следующей ячейке.

Я уже пытался использовать reloadData() для обновления всех окружностей ячейки при нажатии кнопки, однако проблема, которую я обнаружил, заключается в том, что видео сбрасывается обратно в начало (и мне нужно не для этого, не только для видимой ячейки, но и для всех ячеек).

Какие у меня есть другие варианты?

1 Ответ

0 голосов
/ 29 марта 2020

При нажатии кнопки в контроллере представления вам потребуется изменить данные / коллекцию / массив данных, которые вы загружаете в представление коллекции. Для достижения результата в (например, didSelectItemAtIndexPath:(NSIndexPath *)indexPath) необходимо изменить модель данных для этого определенного c элемента ячейки / коллекции. Например, вы можете добавить свойство isSelected для вашей модели данных представления коллекции.

В вашем случае вызов reload data вызывает все методы UICollectionViewDelegate & UICollectionViewDataSource, однако, поскольку вы не изменили данные с помощью, результат / пользовательский интерфейс возвращается в исходное состояние.

...