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

实现思路:

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

实现步骤:

  1. 重写下面方法:
/*! 
    即将显示消息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复用问题。
      }
 }
  1. 判断 Cell 如果是 RCMessageCell 类型,强转 Cell 类型

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

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

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