@@ -25,6 +25,7 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
2525
2626 weak var delegate : IMUIMessageMessageCollectionViewDelegate ?
2727 var message : IMUIMessageModelProtocol ?
28+ var cellGesture = UITapGestureRecognizer . init ( )
2829 var bubbleGesture = UITapGestureRecognizer . init ( )
2930 var longPress = UILongPressGestureRecognizer . init ( )
3031 override init ( frame: CGRect ) {
@@ -40,12 +41,14 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
4041 self . contentView. addSubview ( self . isPlayedView)
4142// self.bubbleGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBubbleView))
4243// let longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.longTapBubbleView(sender:)))
44+ self . cellGesture. addTarget ( self , action: #selector( self . tapCellView) )
4345 self . bubbleGesture. addTarget ( self , action: #selector( self . tapBubbleView) )
4446 self . longPress. addTarget ( self , action: #selector( self . longTapBubbleView ( sender: ) ) )
4547 self . bubbleView. isUserInteractionEnabled = true
4648 self . bubbleView. addGestureRecognizer ( self . bubbleGesture)
4749 self . bubbleView. addGestureRecognizer ( self . longPress)
4850 self . bubbleGesture. numberOfTapsRequired = 1
51+ self . addGestureRecognizer ( self . cellGesture)
4952
5053 let avatarGesture = UITapGestureRecognizer ( target: self , action: #selector( self . tapHeaderImage) )
5154 avatarGesture. numberOfTapsRequired = 1
@@ -145,6 +148,7 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
145148 self . isPlayedView. isHidden = true
146149
147150 let statusView = self . statusView as! IMUIMessageStatusViewProtocal
151+ self . statusView? . isHidden = false
148152 switch message. messageStatus {
149153 case . sending:
150154 statusView. layoutSendingStatus ( )
@@ -154,6 +158,7 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
154158 break
155159 case . success:
156160 statusView. layoutSuccessStatus ( )
161+ self . statusView? . isHidden = true
157162 if message. type == . voice{ //录音
158163 self . durationLabel. isHidden = false
159164 let tmpDict = message. customDict
@@ -201,9 +206,17 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
201206 }
202207
203208 func tapBubbleView( ) {
204- self . delegate? . messageCollectionView ? ( didTapMessageBubbleInCell: self , model: self . message!)
209+ if self . message? . type == . text {
210+ self . delegate? . messageCollectionView ? ( tapCellView: self )
211+ } else {
212+ self . delegate? . messageCollectionView ? ( didTapMessageBubbleInCell: self , model: self . message!)
213+ }
205214 }
206215
216+ func tapCellView( ) { //点击整个cell,隐藏键盘
217+ self . delegate? . messageCollectionView ? ( tapCellView: self )
218+ }
219+
207220 func longTapBubbleView( sender : UILongPressGestureRecognizer ) {
208221 if sender. state == UIGestureRecognizerState . began{
209222 if self . message? . type == . notification || self . message? . type == . redpacketOpen {
@@ -244,7 +257,8 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
244257 }
245258
246259 func tapSatusView( ) {
247- self . delegate? . messageCollectionView ? ( didTapStatusViewInCell: self , model: self . message!)
260+ self . delegate? . messageCollectionView ? ( didTapStatusViewInCell: self , model: self . message!)
261+
248262 }
249263
250264 func didDisAppearCell( ) {
@@ -255,16 +269,19 @@ open class IMUIBaseMessageCell: UICollectionViewCell, IMUIMessageCellProtocal,Me
255269 if strTouch == " begin " {
256270 self . bubbleView. removeGestureRecognizer ( self . bubbleGesture)
257271 self . bubbleView. removeGestureRecognizer ( self . longPress)
272+ self . removeGestureRecognizer ( self . cellGesture)
258273 } else {
259274 self . bubbleView. addGestureRecognizer ( bubbleGesture)
260275 self . bubbleView. addGestureRecognizer ( longPress)
276+ self . addGestureRecognizer ( self . cellGesture)
261277 }
262278 }
263279
264280 deinit {
265281 NotificationCenter . default. removeObserver ( self )
266282 self . bubbleView. removeGestureRecognizer ( self . bubbleGesture)
267283 self . bubbleView. removeGestureRecognizer ( self . longPress)
284+ self . removeGestureRecognizer ( self . cellGesture)
268285 }
269286
270287
0 commit comments