Alternative solution for requiring direct taps for launching media view (#1235) (#1261)

// FREEBIE
pull/1/head
Brandon Cheng 9 years ago committed by Michael Kirk
parent 29769b4b76
commit 583d3e82ad

@ -1041,23 +1041,6 @@ typedef enum : NSUInteger {
#pragma mark - Actions #pragma mark - Actions
- (void)collectionView:(JSQMessagesCollectionView *)collectionView didTapCellAtIndexPath:(NSIndexPath *)indexPath touchLocation:(CGPoint)touchLocation
{
TSMessageAdapter *messageItem = [collectionView.dataSource collectionView:collectionView messageDataForItemAtIndexPath:indexPath];
TSInteraction *interaction = [self interactionAtIndexPath:indexPath];
switch (messageItem.messageType) {
case TSErrorMessageAdapter:
[self handleErrorMessageTap:(TSErrorMessage *)interaction];
break;
case TSInfoMessageAdapter:
[self handleWarningTap:interaction];
break;
default:
DDLogDebug(@"Not handling cell tap for message: %@", messageItem);
}
}
- (void)collectionView:(JSQMessagesCollectionView *)collectionView - (void)collectionView:(JSQMessagesCollectionView *)collectionView
didTapMessageBubbleAtIndexPath:(NSIndexPath *)indexPath didTapMessageBubbleAtIndexPath:(NSIndexPath *)indexPath
{ {
@ -1242,6 +1225,12 @@ typedef enum : NSUInteger {
} }
} }
} break; } break;
case TSErrorMessageAdapter:
[self handleErrorMessageTap:(TSErrorMessage *)interaction];
break;
case TSInfoMessageAdapter:
[self handleWarningTap:interaction];
break;
case TSCallAdapter: case TSCallAdapter:
break; break;
default: default:

@ -56,4 +56,13 @@
self.cellLabel.text = nil; self.cellLabel.text = nil;
} }
// This subclass does not have a messageBubbleContainerView, so superclass
// touch calculations will be incorrect. Since this view spans the entire
// frame, we can override the touch handler to respond to user actions by
// default.
- (void)jsq_handleTapGesture:(UITapGestureRecognizer *)tap
{
[self.delegate messagesCollectionViewCellDidTapMessageBubble:self];
}
@end @end

Loading…
Cancel
Save