UITableViewDiffableDataSource не загружает состояние новостей, если пользователь прокручивает

Все работает, если пользователь не прокручивает tableview при обновлении.

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

Код обновления данных приведен ниже:

      var snapshot = tableViewDataSource.snapshot()
snapshot.deleteAllItems()
snapshot.appendSections([.conversation])
snapshot.appendItems(conversationList, toSection: .conversation)
tableViewDataSource.apply(snapshot)

Это как-то ожидаемое поведение?

1 ответ

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

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

Другие вопросы по тегам