跳转至

回调方法

收到新消息

SDK 在此方法中有针对消息接收有默认的处理(如刷新等),如果开发者重写此方法,请注意调用 super

提示

notificationobjectRCMessage 消息对象,userInfoNSDictionary 对象,其中 key 值为 leftvalue 为还剩余未接收的消息数的 NSNumber 对象。

参数 类型 说明
notification NSNotification 收到新消息的notification
- (void)didReceiveMessageNotification:(NSNotification *)notification;

即将显示 Cell

开发者可以在此回调中修改 Cell 的一些显示属性。会话列表自带 Cell 样式如字体颜色,字体大小的修改,不建议修改 Cell 的布局,如果对 UI比较高的定制需求,建议自定义会话列表 Cell

参数 类型 说明
cell RCConversationBaseCell 即将显示的Cell
indexPath NSIndexPath 该Cell对应的会话Cell数据模型在数据源中的索引值
- (void)willDisplayConversationTableCell:(RCConversationBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath;

注意

数据源中存放的元素为会话 Cell 的数据模型,即 RCConversationModel 对象。

参数 类型 说明
dataSource NSMutableArray 即将加载的列表数据源
返回值 NSMutableArray 修改后的数据源
- (NSMutableArray *)willReloadTableData:(NSMutableArray *)dataSource;

即将更新未读消息数

该方法在非主线程回调,如果想在本方法中操作 UI,请手动切换到主线程。当收到消息或删除会话时,会调用此回调,开发者可以在此回调中执行未读消息数相关的操作。

- (void)notifyUpdateUnreadMessageCount;

自定义会话 Cell 显示

参数 类型 说明
tableView UITableView 当前TabelView
indexPath NSIndexPath 该Cell对应的会话Cell数据模型在数据源中的索引值
返回值 RCConversationBaseCell 自定义会话需要显示的Cell
- (RCConversationBaseCell *)rcConversationListTableView:(UITableView *)tableView
                                  cellForRowAtIndexPath:(NSIndexPath *)indexPath;
参数 类型 说明
tableView UITableView 当前TabelView
indexPath NSIndexPath 该Cell对应的会话Cell数据模型在数据源中的索引值
返回值 CGFloat 自定义会话需要显示的Cell的高度
- (CGFloat)rcConversationListTableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

左滑删除自定义会话

自定义会话 Cell 在删除时会回调此方法,开发者可以在此回调中,定制删除的提示UI、是否删除。 如果确定删除该会话,开发者需要在调用 RCIMClient 中的接口删除会话或其中的消息,并从 conversationListDataSourceconversationListTableView 中删除该会话。

参数 类型 说明
tableView UITableView 当前TabelView
editingStyle UITableViewCellEditingStyle 当前的Cell操作,默认为UITableViewCellEditingStyleDelete
indexPath NSIndexPath 该Cell对应的会话Cell数据模型在数据源中的索引值
/*!
 左滑删除自定义会话时的回调

 @discussion 自定义会话Cell在删除时会回调此方法,开发者可以在此回调中,定制删除的提示UI、是否删除。
 如果确定删除该会话,开发者需要在调用RCIMClient中的接口删除会话或其中的消息,
 并从conversationListDataSource和conversationListTableView中删除该会话。
 */
- (void)rcConversationListTableView:(UITableView *)tableView
                 commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
                  forRowAtIndexPath:(NSIndexPath *)indexPath;

读取数据库刷新列表

注意

从数据库中重新读取并刷新,会比较耗时,请谨慎使用。

/*!
 从数据库中重新读取会话列表数据,并刷新会话列表
 */
- (void)refreshConversationTableViewIfNeeded;