2011-01-09 40 views
10

我想添加一個手勢到我的應用程序,所以當用戶垂直滑動觸發一個方法來做一些事情。滑動可以向上或向下。我從來沒有做過任何手勢,所以這是我第一次使用UITableView中包含的用於刪除行的手勢。如何向所有屏幕的iPhone應用添加垂直滑動手勢?

另一個問題是,我的大部分屏幕都是UITableView,因此用戶可能只是簡單地滾動UITableView。所以我想知道如果我可以使用兩根手指輕掃(垂直)檢測手勢來運行代碼與單個手指輕掃滾動UITableView?

預先感謝您。

尼爾

回答

20

這正好ApplicationDidLaunch:

UISwipeGestureRecognizer *swipeGesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipedScreen:)] autorelease]; 
swipeGesture.numberOfTouchesRequired = 2; 
    swipeGesture.direction = (UISwipeGestureRecognizerDirectionUp|UISwipeGestureRecognizerDirectionDown); 

[window addGestureRecognizer:swipeGesture]; 

然後實現

- (void) swipedScreen:(UISwipeGestureRecognizer*)swipeGesture { 
    // do stuff 
} 

使用文檔UIGestureRecognizerUISwipeGestureRecognizer

此外,如果你想檢測刷卡的方向,你將不得不設置兩個單獨的手勢識別器。您無法從滑動手勢識別器獲取滑動的方向,只能查看其識別的方向。

+0

發現一個問題 - 當我轉動我的設備的刷卡 「垂直」 的手勢沒有考慮到方向。所以如果你創建一個垂直(DirectionUp/Down)滑動並將設備旋轉到風景,你必須現在水平滑動。任何建議來解決這個問題? – Neal 2011-01-30 13:34:33

0

在SWIFT 4.0,即那張AppDelegate中的方法didFinishLaunchingWithOptions:

let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(self.swipedScreen(swipeGesture:))) 
swipeGesture.numberOfTouchesRequired = 2 
swipeGesture.direction = [UISwipeGestureRecognizerDirection.up, UISwipeGestureRecognizerDirection.down] 
window?.addGestureRecognizer(swipeGesture) 

和動作:

@objc func swipedScreen(swipeGesture: UISwipeGestureRecognizer){ 
    Swift.print("hy") 
} 
相關問題