ios - 在第一次加载时显示 collectionView 的底部,无需滚动和延迟加载

标签 ios swift uicollectionview uiscrollview messagekit

我开发了一个聊天应用程序,我在其中将 MessageKit 用于我的 iOS 应用程序。我的问题是当我打开任何聊天屏幕时,messageCollectionView 从顶部开始,显示旧聊天。我需要在打开任何聊天屏幕后立即从底部启动 collectionView。 我试过了:

messagesCollectionView.scrollToBottom(动画:真)

但是会对性能产生影响(如果有超过数百/数千条消息)。

如果反转 Collection View ,或者开始从底部然后顶部添加单元格,有什么办法。

最佳答案

The above suggestions in comments were more robust and correct implementation.


或者你可以试试这个:

//After reloading
DispatchQueue.main.async {
    self.messagesCollectionView.scrollToItem(at: IndexPath(row: 0, section: self.messages.count - 1), at: .top, animated: false)
   }

关于ios - 在第一次加载时显示 collectionView 的底部,无需滚动和延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761365/

相关文章:

swift - 具有共同属性的对象

swift - Swift AlamoFire 中的 SSL 固定

ios - 简单地使用 Storyboard,约束来设置 UICollectionView 中的单元格大小

swift - 确定 Collection View 单元格的大小

ios - 通过 URL 中的 ID 映射 RestKit 关系

ios - 错误响应 TwitterKit

swift - 键盘隐藏/显示通知时 UITextView 的 ScrollView 问题

ios - Collection View 分页单元偏离中心

ios - 在 Swift 中作为整数的索引

ios - 在 PayPal 中启用信用卡付款会导致模拟器和物理设备崩溃