在我的聊天视图控制器的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. Swift 3 Firebase聊天应用程序重复消息
- 6. 当聊天室的任何用户发布消息时,如何重新加载聊天室的消息?
- 7. ios聊天消息应用程序
- 8. Javascript + Pubnub聊天室通知
- 9. 解析+ PubNub:私人聊天
- 10. Quickblox iOS下载聊天消息附件
- 11. 聊天滚动条
- 12. 聊天消息窗口移动
- 13. Rails api PUSH聊天消息
- 14. javascript聊天显示消息
- 15. 发送聊天消息
- 16. Node.js聊天应用不加载
- 17. 当发送消息时,Socket.io聊天重新加载页面
- 18. PubNub如何配置基本的聊天应用程序ios
- 19. 显示聊天消息使用Qt(C++)
- 20. 消息显示使用Skype SDK聊天
- 21. 使用FQL读取聊天消息
- 22. 滚动到聊天窗口
- 23. Pubnub许多私人聊天在ios
- 24. Pubnub订阅1对1聊天
- 25. iOS聊天应用程序的用户状态消息
- 26. 滚动像WhatsApp聊天滚动到顶部,滚动进一步显示“存档聊天”
- 27. Pubnub聊天设置为rails应用程序
- 28. Parse Messenger聊天Swift:信息有问题
- 29. 与Swift和Firebase聊天应用逻辑
- 30. Laravel聊天消息。保存图像发送聊天?
您可否在您的问题中详细说明“我需要检索另外20条消息”部分!哪20条消息? –
说消息历史有40条消息,viewDidLoad检索消息[0]〜[19],我将如何检索[20]〜[39]? –