Как отслеживать ячейку collectionView (при поддержке FetchedResultsController) ячейки - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть коллекция чата. где пользователь может отправлять новое сообщение, удалять сообщения и т. д. CollectionView поддерживается с помощью fetchedResultController.

Существует несколько типов ячеек, таких как текст, изображение, звук и т. Д. Я создал проигрыватель, который обрабатывает звук для одной ячейки. Ячейка является делегатом игрока, поэтому я могу обновить время воспроизведения, остановить игрока и т. Д. Из объекта Player. Я отслеживаю текущую воспроизводящую аудио ячейку, используя indexPath.

Но проблема в том, что если пользователь удаляет сообщение, которое получено или отправлено до аудиосообщения, indexPath аудиосообщения изменяется.

func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>,
                    didChange anObject: Any,
                    at indexPath: IndexPath?,
                    for type: NSFetchedResultsChangeType,
                    newIndexPath: IndexPath?) {
}

В этом обратном вызове я получаю удаление только для удаленной ячейки. Но я не получаю никакого обратного вызова для обновленного indexPath других ячеек. Как я могу отследить indexPath аудио ячейки или ячейку, если предыдущая ячейка удалена?

1 Ответ

0 голосов
/ 01 ноября 2018

Я подозреваю, что было бы неплохо, если бы структура или класс данных, которые вы вводите в каждую ячейку, имели уникальный идентификатор, чтобы вы могли воздействовать на каждый объект независимо от его положения на экране. Если ваши индексы будут перемещаться и изменяться, вам может потребоваться что-то более постоянное, чтобы отслеживать, над какими объектами нужно воздействовать.

Надеюсь, это имеет смысл. Если вам «нужно» воздействовать на индекс каждой ячейки, а не на данные внутри, вам нужно будет обновлять любую ссылку на индекс всякий раз, когда что-либо перемещается, удаляется или изменяется.

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