在我的聊天視圖控制器的viewDidLoad中,我寫了self.appDelegate.client?.historyForChannel(currentChannel, start: nil, end: nil, limit: 20, withCompletion:
,它檢索了20條最近的消息。不過,我希望在最近20條消息之前檢索早期/舊消息,以獲得無限滾動功能。我怎樣才能做到這一點?Swift + Pubnub聊天應用加載滾動的舊消息
回答
商店從Pubnub歷史收到的第一條消息的時間戳接收未來20個消息:
self.client?.historyForChannel(channel, start: lastStoredTimstamp, end: nil, limit: 20, reverse: false, withCompletion:
我已經測試過它,它工作得很好。
小說明: 僅使用start參數總是返回比提供的時間標記更早的消息。如果你設置reverse = true,你會得到比所提供的時間標記更新的消息。
請參閱https://www.pubnub.com/docs/swift/storage-and-history PubNub歷史API如何與時間線圖一起工作。
它可以通過UIScrollViewDelegate
完成(在你的情況,這是內部的UITableView)
首先,設置你的UITableView
的代表。
然後,你必須重寫scrollViewDidScroll(_ scrollView: UIScrollView)
,這是一個示例代碼:
let currentOffset = scrollView.contentOffset.y
let maximumOffset = scrollView.contentSize.height - scrollView.frame.size.height
let deltaOffset = maximumOffset - currentOffset
if (deltaOffset <= 0)
// call to self.appDelegate.client?.historyForChannel with the offsets
)
的,如果當你已經達到到列表的底部表達會罷工。
self.appDelegate.client?.historyForChannel
包含開始&結束偏移量。可以通過在每次調用historyForChannel
後加上+20(在某處聲明一個類變量)來計算開始時間,但只有響應中的對象沒有某些唯一ID時才能起作用。
問題是'start'和'end'是NSNumbers,它們應該是日期。這就是爲什麼我不能爲每個卷軸做簡單的+20 –
- 1. 製作聊天消息正文滾動
- 2. Angular的Pubnub聊天
- 3. 使用Pubnub的聊天應用程序
- 4. Pubnub聊天應用程序與存儲
- 5. PubNub中的聊天消息訂購策略
- 6. Swift 3 Firebase聊天應用程序重複消息
- 7. 當聊天室的任何用戶發佈消息時,如何重新加載聊天室的消息?
- 8. ios聊天消息應用程序
- 9. 將PubNub添加到聊天服務器
- 10. Javascript + Pubnub聊天室通知
- 11. 解析+ PubNub:私人聊天
- 12. Quickblox iOS下載聊天消息附件
- 13. 如何向下滾動到ajax聊天上的新消息?
- 14. 聊天滾動條
- 15. 聊天消息窗口移動
- 16. 聊天(XMPP)消息平臺
- 17. 分隔聊天消息
- 18. linphone聊天消息問題
- 19. 發送聊天消息
- 20. Facebook xmpp聊天消息
- 21. Rails api PUSH聊天消息
- 22. javascript聊天顯示消息
- 23. 在所有單元中加載相同消息的聊天
- 24. 移動聊天應用.net Api發送消息
- 25. 自動滾動聊天室
- 26. Node.js聊天應用不加載
- 27. 聊天並使滾動條置於底部並追加新消息。
- 28. Firebase聊天室 - 刪除舊信息
- 29. 當發送消息時,Socket.io聊天重新加載頁面
- 30. Swift中的聊天應用程序ios9
您可否在您的問題中詳細說明「我需要檢索另外20條消息」部分!哪20條消息? –
說消息歷史有40條消息,viewDidLoad檢索消息[0]〜[19],我將如何檢索[20]〜[39]? –