为 SDK 内置消息 cell 的头像添加自定义 view

实现思路:

重写会话页面中展示 cell 的方法,拿到当前消息Cell类中显示头像portraitImageView的 view,添加自定义 view,且需要避免重复添加。

实现步骤:

  1. 重写下面方法

  2. 判断 cell 如果是 RCMessageCell 类型,强转 cell 类型

  3. 获取到 RCMessageCell 对象的 portraitView 头像 view 属性,将该 view 强转为 UIImageView 类型。

  4. 创建自定义 view,建议设置 tag,并添加到强转后的头像 view 对象上。

  5. 在添加自定义 view 前,建议遍历头像 view 的 subViews,通过 tag 判断如果已添加自定义 view,不用重复添加或做移除操作。

/*! 
    即将显示消息Cell的回调 
    @param cell  消息Cell 
    @param indexPath   该Cell对应的消息Cell数据模型在数据源中的索引值 
    @discussion 您可以在此回调中修改Cell的显示和某些属性。 
 */
 
- (void)willDisplayMessageCell:(RCMessageBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath {
    if ([cell isKindOfClass:[RCMessageCell class]]) {
        RCMessageCell *msgCell = (RCMessageCell*)cell;  
        UIImageView *portraitView = (UIImageView*)msgCell.portraitImageView;  
        创建 自定义 view 的代码        
        [portraitView addSubview:创建的自定义 view]    
      }
      else
      {
          //避免Cell复用问题。
      }
 }