默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
IM聊天界面里如何做到像微信或qq一样的时间显示
阅读(58735) | 评论(8 收藏1 淘帖
如何做到像微信或qq一样的聊天时间显示  间隔多久显示

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:IM开发
上一篇:关于IM通信技术以及开源技术支持不到位的思考下一篇:请问大神 : 用NODE.JS写的Web在线能与Android和IOS共用吗?
推荐方案
评论 8
你说的是每隔一段时间就会显示一条灰色的时间分隔条那样的东西吗?
IM聊天界面里如何做到像微信或qq一样的时间显示_timg.png
嗯 这个如何实现 怎么获取上个cell的时间戳
引用:JackJiang 发表于 2017-08-19 11:11
你说的是每隔一段时间就会显示一条灰色的时间分隔条那样的东西吗?


嗯 这个如何实现 怎么获取上个cell的时间戳
引用:这不是马甲 发表于 2017-08-23 09:28
嗯 这个如何实现 怎么获取上个cell的时间戳

时间戳不是根据cell计算的,ListView的数据肯定对应的是你的消息列表数据模型,ListView在显示数据时来计算数据模型中的消息的时间戳,来决定是否需要在界面上显示一个时间。你可以去网上找demo,大把的例子
引用:JackJiang 发表于 2017-08-23 09:57
时间戳不是根据cell计算的,ListView的数据肯定对应的是你的消息列表数据模型,ListView在显示数据时来计 ...

ios版本

你去看看这个开源工程:https://github.com/jessesquires/JSQMessagesViewController,很多人在用,你可以下载了参考一下:
IM聊天界面里如何做到像微信或qq一样的时间显示_aaa.png
分析了一下微信的数据库,发现是每条消息记录都带有一个是否显示时间的属性,也就是说每添加一条新信息,其对应的会话的已显示消息都需要作一次遍历。效率较低,而且数据表里发现该列基本都是空值,应该是历史设计。
我目前实现是每条消息之间时间相隔大于某个值就显示一次时间,但这样会导致连续聊天情况下一个时间都不显示。
要模拟微信这种而不依赖多一个属性的话,可利用数组记录已经显示了时间的消息。
引用:pye52 发表于 2017-08-25 18:01
分析了一下微信的数据库,发现是每条消息记录都带有一个是否显示时间的属性,也就是说每添加一条新信息,其 ...

是的,大致就是这个思路了,并没有什么难的,就是个UI显示优化而已
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部