【问题标题】: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)")
            }
    })
        }

【问题讨论】:

    标签: swift messagekit


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2023-02-14
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      相关资源
      最近更新 更多