MessageKit:将手势识别器添加到 messageCollectionView 和 cellDelegate 不起作用

Posted

技术标签:

【中文标题】MessageKit:将手势识别器添加到 messageCollectionView 和 cellDelegate 不起作用【英文标题】:MessageKit : Add Gesture recognizer to messageCollectionView and cellDelegate doesn't work 【发布时间】:2019-01-30 18:04:21 【问题描述】:

我正在使用 messageKit 以文本格式显示消息、视频和照片,并且所有消息都是预定义的。当用户点击屏幕时,应该显示下一条消息。我已经向 messageCollectionView 添加了手势识别器,但是当用户点击图像时,我需要全屏显示图像。但是单元委托永远不会被调用

   let gesture = UITapGestureRecognizer(target: self, action: #selector(MessageViewController.tapScreen(_:)))

    messagesCollectionView.addGestureRecognizer(gesture)
    messagesCollectionView.messagesDataSource = self
    messagesCollectionView.messagesLayoutDelegate = self
    messagesCollectionView.messagesDisplayDelegate = self
    messagesCollectionView.messageCellDelegate = self

我正在使用最新的 messageKit

pod 'MessageKit'

知道如何实现吗?

为了进一步说明,这里是屏幕的图像。点击任意位置应该调用手势函数,但是图片应该调用cellDelegate。

【问题讨论】:

***.com/questions/27880607/… -> 在 UIView、UIImageView 和 UIView 的所有子级等上使用轻击手势。 【参考方案1】:

你可以调用 Messagekit 提供的这个方法。

 extension ViewController: MessageCellDelegate 

func didTapAvatar(in cell: MessageCollectionViewCell) 
    print("Avatar tapped")


func didTapMessage(in cell: MessageCollectionViewCell) 
 // handle message here
 print("Meesage Tapped")
 

【讨论】:

以上是关于MessageKit:将手势识别器添加到 messageCollectionView 和 cellDelegate 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView:将单击手势识别器添加到补充视图

将滑动手势识别器添加到 DetailViewContoller

将向上滑动手势识别器添加到模态视图

将手势识别器添加到表格单元格中的图像视图

无法将点击手势识别器添加到 SwiftUI MKMapView UIViewRepresentable

如何将手势识别器添加到collectionview单元格中的uiview