[英]How to Implement a UILongPressGesture followed by Swipe gesture in ios
我正在嘗試在iOS中的按鈕上實現LongPress手勢,然后實現“滑動手勢”。 該視圖更有可能是WhatsApp應用程序的“取消滑動”和“記錄”功能。
目前,我沒有收到滑動手勢事件。 我也正在實現shouldRecognizeWithGestureRecognizer方法。 請提出建議。
(BOOL)gestureRecognizer:(UIGestureRecognizer *) recognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
我們不需要單獨的滑動手勢識別器。 長按手勢識別器中的不同狀態可用於處理這種情況。
長按手勢具有不同的狀態,例如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];
}
因此,我們可以使用“手勢委托”方法與長按手勢識別器一起處理滑動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.