如何自定义消息

自定义消息
发布时间: 2016-09-19 15:59

回答:

1如果你使用的SDK是2.7.1(不包含2.7.1)之前版本,自定义消息参考:http://blog.rongcloud.cn/?p=514

2如果你使用的SDK是2.7.1及其之后的版本,自定义消息有以下几点:

       (1)自定义消息体 (和之前版本无差异)

       (2)自定义消息cell:如果你不需要消息有头像显示,继承RCMessageBaseCell,如果需要,继承RCMessageCell


2.7.1之后,自定义cell要重写下面方法来返回cell的Size,

/*!

 自定义消息Cell的Size

 

 @param model               要显示的消息model

 @param collectionViewWidth cell所在的collectionView的宽度

 @param extraHeight         cell内容区域之外的高度

 

 @return 自定义消息Cell的Size

 

 @discussion 当应用自定义消息时,必须实现该方法来返回cell的Size。

 其中,extraHeight是Cell根据界面上下文,需要额外显示的高度(比如时间、用户名的高度等)。

 一般而言,Cell的高度应该是内容显示的高度再加上extraHeight的高度。

 */

+ (CGSize)sizeForMessageModel:(RCMessageModel *)model

      withCollectionViewWidth:(CGFloat)collectionViewWidth

         referenceExtraHeight:(CGFloat)extraHeight;


     (3)在初始化appkey之后注册消息:
    [[RCIMClient sharedRCIMClient] registerMessageType:MyMessage.class];

     (4)在聊天界面注册消息cell和消息:

         [self registerClass:[MyMessageCell class] forMessageClass:[MyMessage class]];


按照以上操作完成之后无需在聊天界面中再重写返回cell和cellSize的方法,即可以发送自定义消息看效果

参考demo的RCDTestMessage(Cell)


如果你使用的是lib,自定义消息这里只需要(1)(3)


注:如果你之前有自定义消息,升级版本后不想更改方法,可按照之前的逻辑处理,SDK是兼容之前的版本的


我对此仍有疑问!继续追问