当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

实现自定义 cell 的点击事件。

自定义的消息 cell 默认是不会触发 SDK 中聊天页面中 cell 的点击事件,需要自己添加手势并设置代理
发布时间: 2015-12-17 10:22

回答:

5.0.0 及之后版本:

自定义cell 的子控件只要添加在父类控件 messageContentView 上,根据子控件大小调节父类控件的尺寸之后,就可以响应点击事件 didTapMessageCell:方法,参考官网demo (https://github.com/rongcloud/sealtalk-ios) 中的 RCDTestMessageCell 消息cell


5.0.0 之前版本:

下面以给自定义cell中的图片view实现点击为例。self.pictureView是这个自定义cell的一个图片view。

第一步:在自定义cell的- (void)initialize函数里,给图片view加一个点击手势

UITapGestureRecognizer *pictureTap =

  [[UITapGestureRecognizer allocinitWithTarget:self action:@selector(tapPicture:)];

    pictureTap.numberOfTapsRequired = 1;

    pictureTap.numberOfTouchesRequired = 1;

    [self.pictureView addGestureRecognizer:pictureTap];

    self.pictureView.userInteractionEnabled = YES;


第二步:为手势执行的方法设置代理

- (void)tapPicture:(UIGestureRecognizer *)gestureRecognizer {

    if ([self.delegate respondsToSelector:@selector(didTapMessageCell:)]) {

        [self.delegate didTapMessageCell:self.model];

    }

}


实现上面两步之后,点击自定义消息的拖,SDK就会调用下面函数了。

/**

 *  点击消息内容

 *

 *  @param model 数据

 */

- (void)didTapMessageCell:(RCMessageModel *)model;


具体可以参考附件中RCDTestMessage和RCDTestMessageCell的实现

RCDTestMessageAndCell.zip