进入聊天屏幕时,如何在默认情况下在底部显示最近消息的位置显示对话?
Posted
技术标签:
【中文标题】进入聊天屏幕时,如何在默认情况下在底部显示最近消息的位置显示对话?【英文标题】:How do i get conversation to display at the bottom by default where recent messages are present when entering chat screen? 【发布时间】:2021-08-25 19:52:19 【问题描述】:点击对话后,聊天屏幕将从顶部开始,然后一直滚动到底部。我如何绕过从顶部开始和滚动以立即在底部显示最新消息。 这行代码是我发现做我想做的最接近的事情
messagesCollectionView.scrollToLastItem(animated: true)
这是它当前的显示方式,然后当我进入对话时它会滚动到底部(通知日期)
这就是我希望它在进入对话时显示的方式(通知日期)
private func listenForMessages(id: String)
Networking.shared.getComments(requestId: 15836, completionHandler: [weak self] (result) in
switch result
case .success(let comments):
guard !comments.isEmpty else
return
self?.messages = comments
DispatchQueue.main.async
self?.messagesCollectionView.reloadData()
self?.messagesCollectionView.scrollToLastItem()
case .failure(let error):
print("failed to get messages: \(error)")
)
【问题讨论】:
【参考方案1】:您可能只能在该行中说animated: false
。
【讨论】:
嗯,还是这样 你能包含更多代码吗?比如scrollToBottom
行在哪里?
@goatfanerd 是的,只是包含了一个 sn-p【参考方案2】:
你还没有在scrollToLastItem
中发布你在做什么,不过你可以试试这个:
let lastItemIndex = IndexPath(item: collectionArray.count - 1, section: 0)
self.collectionView.scrollToItem(at: lastItemIndex, at: .bottom, animated: false)
【讨论】:
以上是关于进入聊天屏幕时,如何在默认情况下在底部显示最近消息的位置显示对话?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI中ScrollView底部对齐内的VStack