我想添加一個手勢到我的應用程序,所以當用戶垂直滑動觸發一個方法來做一些事情。滑動可以向上或向下。我從來沒有做過任何手勢,所以這是我第一次使用UITableView中包含的用於刪除行的手勢。如何向所有屏幕的iPhone應用添加垂直滑動手勢?
另一個問題是,我的大部分屏幕都是UITableView,因此用戶可能只是簡單地滾動UITableView。所以我想知道如果我可以使用兩根手指輕掃(垂直)檢測手勢來運行代碼與單個手指輕掃滾動UITableView?
預先感謝您。
尼爾
我想添加一個手勢到我的應用程序,所以當用戶垂直滑動觸發一個方法來做一些事情。滑動可以向上或向下。我從來沒有做過任何手勢,所以這是我第一次使用UITableView中包含的用於刪除行的手勢。如何向所有屏幕的iPhone應用添加垂直滑動手勢?
另一個問題是,我的大部分屏幕都是UITableView,因此用戶可能只是簡單地滾動UITableView。所以我想知道如果我可以使用兩根手指輕掃(垂直)檢測手勢來運行代碼與單個手指輕掃滾動UITableView?
預先感謝您。
尼爾
這正好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
}
使用文檔UIGestureRecognizer和UISwipeGestureRecognizer。
此外,如果你想檢測刷卡的方向,你將不得不設置兩個單獨的手勢識別器。您無法從滑動手勢識別器獲取滑動的方向,只能查看其識別的方向。
在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")
}
發現一個問題 - 當我轉動我的設備的刷卡 「垂直」 的手勢沒有考慮到方向。所以如果你創建一個垂直(DirectionUp/Down)滑動並將設備旋轉到風景,你必須現在水平滑動。任何建議來解決這個問題? – Neal 2011-01-30 13:34:33