Отключить повторное использование ячеек в UICollectionView

Я использую UICollectionView в своем приложении с распознавателями жестов в отдельных ячейках, которые позволяют пользователю "открывать" ячейку, чтобы показать больше данных под ней.

Проблема заключается в том, что я часто перезаряжаю данные в CollectionView; поскольку приложение получает обновления каждые 3 секунды или около того. Это приводит к нежелательному поведению при повторном использовании элементов коллекции, когда ячейка находится в процессе скольжения.

Пользователь начнет перемещать ячейку, приложение получит обновление, reloadData, а другая ячейка начнет принимать жест вместо этого и начнет перемещаться.

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

Спасибо!

Ответ 1

Почему бы вам не использовать флаг типа needsReload и установить его, если доступны новые данные. После слайда вы проверяете этот флаг и при необходимости перезагружаете collectionView? Это не работает?

Если вы не хотите повторного использования ячеек, просто используйте scrollView по умолчанию и поместите в него все свои представления!?

Ответ 2

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