Обновите раздел UICollectionView и сохраните положение прокрутки.IOS

Программируем под IOS
Ответить
Anonymous
 Обновите раздел UICollectionView и сохраните положение прокрутки.

Сообщение Anonymous »

У меня есть горизонтальный UICollectionView с несколькими разделами, каждый из которых содержит несколько ячеек следующим образом:

Раздел 0: одна ячейка для отмены выбора.

Раздел 1: недавно выбранные элементы.

Раздел 2 и последующие: в каждом разделе есть несколько элементов, которые можно выбрать.

Когда выбрана ячейка из раздела 2 или более поздней версии, копия этого элемента вставляется в начальный раздел 1 источника данных, и я хочу перезагрузить раздел 1, чтобы отразить обновленные последние элементы. Но я хочу сохранить положение прокрутки. Я пробовал:

Код: Выделить всё

[collectionView reloadSections:setWithIndex1]
и

Код: Выделить всё

[collectionView reloadItemsAtIndexPaths:arrayWithAllSection1IndexPaths]
Я пробовал использовать [collectionView PerformBatchUpdates:], но все, что я пробовал, приводит к сбросу смещения прокрутки к началу представления коллекции. Я попробовал проверить работоспособность, запустив новое приложение с базовым представлением коллекции и перезагрузив раздел с помощью reloadSections, и оно добилось желаемого поведения: не сбрасывает смещение прокрутки. Но выполнение того же самого в моей существующей кодовой базе нежелательно приводит к сбросу смещения.

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

Подробнее здесь: https://stackoverflow.com/questions/589 ... l-position
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»