环信 - 进阶篇之自定义cell(一)
时隔这么久,终于花时间把第二种解决办法提供给大家,希望大家有好的建议,直接在下方提出来。言归正传,接着《环信 - 进阶篇之自定义cell(一)》第一篇cell自定义,这里给大家提供第二种自定义cell处理方法。
以红包为例:

(建议看一看)自定义cell无非就是根据不同的会话题类型去展示我们想要的cell视图,但是系统目前只提供了固定的类型,我们如果需要展示自己设计的cell视图,那么系统的就远远不能满足我们的需求,从而ext(拓展项)就成为了目前解决的最好办法,我们把自己定义好的类型加入到拓展项里面,在我们发送和接收的时候,就从拓展项里拿出解析,从而我们就能准确的知道对应会话题是哪一类型了。

废话不多讲,直接上步骤:
1、创建一个聊天VC,继承EaseMessageViewController ,当你点击别人发来的消息或者你发消息给别人时,直接跳到你写的VC去
2、重写UITableViewCell和CellHeight环信官方解释

3、继承EaseBaseMessageCell重写一个cell,如果不知道cell里面怎么写了可以仿照EaseMessageTimeCell的样式去写,里面无非就是根据model去加载自定义的BubbleView,及跟新BubbleView内部的布局。

4、接下来就是自定义BubbleView(环信BubbleView这块暂不支持其他适配,所以还是老老实实用系统适配方法把!!),更新margin和创建控件都没什么可讲的,就是适配需要自己慢慢调整样式,


其他:
(1)红包领取后会有提示某某已领取或者已过期

看了截图就知道我要讲什么了把,对无非就是和时间提示差不多嘛,也是自定义cell,大家可以参照时间提示的去弄,不想太麻烦就直接label富文本。还是不懂下面截图,还不懂可以去demo中找对应地方。

(2)发送红包时加背景图片太麻烦
想偷懒直接让后台切一个红包气泡给你,勤快的话就自己代码切图慢慢搞。下面的是气泡加载代码,切记,普通会话题时记得加载正常的气泡。
[[EaseBaseMessageCell appearance] setSendBubbleBackgroundImage:[[UIImage imageNamed:@"EaseUIResource.bundle/chat_sender_bg"] stretchableImageWithLeftCapWidth:5 topCapHeight:35]];
[[EaseBaseMessageCell appearance] setRecvBubbleBackgroundImage:[[UIImage imageNamed:@"EaseUIResource.bundle/chat_receiver_bg"] stretchableImageWithLeftCapWidth:35 topCapHeight:35]];
这里还给大家说一种需求:(仿淘宝优惠券、猜你喜欢视图或者为付款提示展示)

未付款和商品价格介绍
很简单,自定义cell也能轻松解决当前需求,不过具体还得你们自己去琢磨,我只给你们提供思路及处理方法。


注意:Bug处理
1、如果出现视图混乱,检查是否有设置自定义的reuseIdentifier,详细模仿EaseMessageTimeCell
2.如果气泡上的点击事件无法实现,请查看是否打开人机交互或者重写消息点击回调
目前只想到写这么多,如果大家有好的建议,可以回复我,我会及时更新到本文章中并注明出处及作者,欢迎大家的指点,有不足之处敬请谅解。
网友评论