如何在 ios 中实现 UI LongPressGesture 后跟滑动手势
How to Implement a UILongPressGesture followed by Swipe gesture in ios
我正在尝试在 ios 中的按钮上实现 LongPress 手势和轻扫手势。该视图更有可能是 WhatsApp 应用程序的 "Slide to Cancel" 和记录功能。
目前我没有收到滑动手势事件。
我也在实施 shouldRecognizeSimultaneouslyWithGestureRecognizer 方法。请建议。
(BOOL)gestureRecognizer:(UIGestureRecognizer *) recognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
我们不需要单独的滑动手势识别器。 Long Press Gesture Recognizer 中的不同状态可以用来处理这种情况。
长按手势有不同的状态,如 UIGestureRecognizerStateBegan、UIGestureRecognizerStateChanged 和 UIGestureRecognizerStateEnded。
UIGestureRecognizerStateBegan 在您长按子视图时立即被调用。
UIGestureRecognizerStateChanged 在用户尝试移动手指时被调用。
UIGestureRecognizerStateEnded 在用户从触摸点抬起手指时调用。
- (void)longPressGestureForPreviewImageView:(UILongPressGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// Long press detected, start the timer
[self showPreviewImage:recognizer];
}
else if(recognizer.state == UIGestureRecognizerStateChanged)
{
NSLog(@"Swipe up");
if ([self.thumbnailImageView.gestureRecognizers containsObject:recognizer]) {
[self.thumbnailImageView removeGestureRecognizer:recognizer];
}
}
else if(recognizer.state == UIGestureRecognizerStateEnded)
{
[self hidePreviewImage];
}
因此我们可以使用手势委托方法和长按手势识别器一起处理滑动。
我正在尝试在 ios 中的按钮上实现 LongPress 手势和轻扫手势。该视图更有可能是 WhatsApp 应用程序的 "Slide to Cancel" 和记录功能。
目前我没有收到滑动手势事件。 我也在实施 shouldRecognizeSimultaneouslyWithGestureRecognizer 方法。请建议。
(BOOL)gestureRecognizer:(UIGestureRecognizer *) recognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
我们不需要单独的滑动手势识别器。 Long Press Gesture Recognizer 中的不同状态可以用来处理这种情况。
长按手势有不同的状态,如 UIGestureRecognizerStateBegan、UIGestureRecognizerStateChanged 和 UIGestureRecognizerStateEnded。
UIGestureRecognizerStateBegan 在您长按子视图时立即被调用。
UIGestureRecognizerStateChanged 在用户尝试移动手指时被调用。
UIGestureRecognizerStateEnded 在用户从触摸点抬起手指时调用。
- (void)longPressGestureForPreviewImageView:(UILongPressGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// Long press detected, start the timer
[self showPreviewImage:recognizer];
}
else if(recognizer.state == UIGestureRecognizerStateChanged)
{
NSLog(@"Swipe up");
if ([self.thumbnailImageView.gestureRecognizers containsObject:recognizer]) {
[self.thumbnailImageView removeGestureRecognizer:recognizer];
}
}
else if(recognizer.state == UIGestureRecognizerStateEnded)
{
[self hidePreviewImage];
}
因此我们可以使用手势委托方法和长按手势识别器一起处理滑动。