簡體   English   中英

如何在iOS中實現UILongPressGesture,然后執行滑動手勢

[英]How to Implement a UILongPressGesture followed by Swipe gesture in ios

我正在嘗試在iOS中的按鈕上實現LongPress手勢,然后實現“滑動手勢”。 該視圖更有可能是WhatsApp應用程序的“取消滑動”和“記錄”功能。

目前,我沒有收到滑動手勢事件。 我也正在實現shouldRecognizeWithGestureRecognizer方法。 請提出建議。

(BOOL)gestureRecognizer:(UIGestureRecognizer *) recognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

我們不需要單獨的滑動手勢識別器。 長按手勢識別器中的不同狀態可用於處理這種情況。

長按手勢具有不同的狀態,例如UIGestureRecognizerStateBeganUIGestureRecognizerStateChangedUIGestureRecognizerStateEnded

長按子視圖時,將立即調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM