簡體   English   中英

滑動手勢識別器對我不起作用

[英]Swipe Gesture Recognizer not working for me

我正在嘗試將 Swipe Gesture Recognizer 添加到我的應用程序,以便我可以向左或向右滑動以到達另一個視圖控制器。 我將對象拖到我想要的視圖控制器上,將它鏈接起來,這樣當向右滑動時,它應該帶我到另一個視圖控制器。 我運行模擬器,但滑動功能不會將我帶到另一個視圖。

創建新項目時,只需添加 3 個視圖控制器和滑動手勢,我就可以在模擬器中滑動,然后將我帶到另一個視圖控制器。 但是在我當前的應用程序中做完全相同的事情並沒有做任何事情。

有什么想法嗎? 我試圖玩弄啟用/禁用狀態,但仍然一無所獲

如果您對編寫代碼感到滿意,請嘗試此操作。

UISwipeGestureRecognizer *left = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(PerformAction:)];
left.direction = UISwipeGestureRecognizerDirectionLeft ;
[self.view addGestureRecognizer:left];

UISwipeGestureRecognizer *right = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(PerformAction:)];
right.direction = UISwipeGestureRecognizerDirectionRight ;
    [self.view addGestureRecognizer:right];

現在執行如下操作:

-(void)PerformAction:(UISwipeGestureRecognizer *)sender {
    if(sender.direction == UISwipeGestureRecognizerDirectionRight) {
        NSLog(@"RIGHT GESTURE");
        // Perform your code here
    }

    if(sender.direction == UISwipeGestureRecognizerDirectionLeft) {
       NSLog(@"LEFT GESTURE");
       // Perform your code here
    }    
}

如果您想在每個視圖控制器上執行此操作,那么您必須根據當前的視圖控制器設置智能邏輯以在向左滑動和向右滑動時執行特定任務。

希望有幫助。

有時當識別器重疊時(比如當你有一個帶有滑動識別器的滾動視圖時)它會導致觸摸被取消..嘗試確保沒有任何東西干擾你的識別器。

我遇到了同樣的問題,並找到了一些可能的解決方案:

  • 也許你需要讓你的視圖 userInteractionEnabled 為真:
    override func viewDidLoad() {
       self.view.isUserInteractionEnabled = true
       // configure your gestures ...
    }
  • 也許你的一個 viewController 有一個 TableView,它與你的 UISwipeGestureRecognizer 重疊,在這種情況下,你可以實現 UIGestureRecognizerDelegate,在這個答案中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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