消息多选功能

消息多选

此功能从 SDK 2.9.0 版本开始支持,

长按,出现消息多选,并且可以自定义点击事件,如下图:

![Simulator Screen Shot - iPhone X - 2018-04-19 at 18.07.31.png](https://rongcloud-res.cn.ronghub.com/135681b060b66a250f9817ee1ad3d62f.png?attname=Simulator Screen Shot - iPhone X - 2018-04-19 at 18.07.31.png “135681b060b66a250f9817ee1ad3d62f.png”)

  1. 开发者在长按消息后出现更多选项,能够多选消息,SDK 默认实现多选消息删除功能

  2. 通过下面属性可设置会话页面多选状态和初始状态

/*!
 会话页面消息是否可编辑选择,如果为 YES,消息 cell 会变为多选样式,如果为 NO,页面恢复初始状态。
 */
@property(nonatomic, assign) BOOL allowsMessageCellSelection;

3.如果需要修改SDK内置消息是否允许多选,可通过在会话页面重写下面方法,修改消息 cell 的 allowsSelection 属性,自定义消息如果允许多选,也可以设置此属性

//RCConversationViewController

/*!
 即将显示消息Cell的回调

 @param cell        消息Cell
 @param indexPath   该Cell对应的消息Cell数据模型在数据源中的索引值

 @discussion 您可以在此回调中修改Cell的显示和某些属性。
 */
- (void)willDisplayMessageCell:(RCMessageBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath;
//RCMessageBaseCell

/*!
 是否允许选择
 */
@property(nonatomic) BOOL allowsSelection;

4.进入多选状态后,底部的视图为:

//RCConversationViewController

/*!
 消息编辑选择的状态下页面底部出现的工具视图
 */
@property(nonatomic, strong) UIToolbar *messageSelectionToolbar;

如果开发者想添加对多选消息的操作事件,如转发,收藏等,可以在 viewDidLoad 中 通过给 messageSelectionToolbar 添加UIBarButtonItem 的方式添加事件

5.通过下面属性拿到选择的消息数据

//RCConversationViewController

/*!
 已经选择的所有消息
 @discussion 只有在 allowsMessageCellSelection 为 YES,才会有有效值
 */
@property(nonatomic, strong, readonly) NSArray<RCMessageModel *> *selectedMessages;

6.关于导航左右按钮如果想要自定义,可以重写会话页面下面方法,可以参考 demo 里面这个方法的重写

//RCConversationViewController

/*!

更新导航栏返回按钮中显示的未读消息数

@discussion 如果您重写此方法,需要注意调用super。

*/

- (void)notifyUpdateUnreadMessageCount;

7.参考官网 demo(SealTalk)的会话页面 RCDChatViewController, 搜“消息多选功能”,看相关多选功能代码