#swift #firebase-realtime-database #uicollectionview #scrolltoindex
#swift #firebase-база данных в реальном времени #uicollectionview #scrolltoindex
Вопрос:
Я пытаюсь понять, как показывать только последние сообщения, как instagram и Facebook, когда вы нажимаете на чат (в моем случае только одно между двумя пользователями).
После того, как я просматриваю все сообщения, я затем выполняю это, которое, я думаю, является стандартным
DispatchQueue.main.async(execute: {
//scroll to the last index
self.collectionView.reloadData()
let indexPath = IndexPath(item: self.messages.count - 1, section: 0)
self.collectionView?.scrollToItem(at: indexPath, at: .bottom, animated: false)
})
К сожалению, при этом прокрутка сообщений будет отображаться с очень большими сбоями, и это происходит каждый раз, когда я открываю чат. Я не смог найти способ показывать самые последние сообщения онлайн. Кажется, все используют scrollToItem (анимированный не имеет значения, потому что в любом случае он выглядит прерывистым). Как мне просто показывать самые последние сообщения каждый раз, когда я нажимаю на чат??
Комментарии:
1. Анимация имеет значение. Он определяет либо мгновенную прокрутку до индексации, либо с небольшой анимацией путем прокрутки других элементов.
2. Хорошо, но в моем случае анимированное false все еще показывает долю секунды прокрутки. Так что для меня это все еще проблема. Предполагается, что animated: false вообще не показывает никаких признаков прокрутки?
3. Нет, это не значит, что это вообще не будет отображаться. Он все еще прокручивает их, но мгновенно.
4. хорошо, вот почему я сказал, что анимация не имеет значения. Потому что в любом случае это выглядит прерывисто. Если кто-то знает альтернативу scrollingToIndex, пожалуйста, дайте мне знать.