如何为所有屏幕的iPhone应用添加垂直滑动手势?

时间:2011-01-09 15:32:33

标签: iphone-sdk-3.0 ios4 xamarin.ios gesture

我想在我的应用中添加一个手势,因此当用户垂直滑动时会触发一种方法来执行某些操作。滑动可以向上或向下。我从来没有做任何手势,所以这是我第一次使用手势而不是UITableView中包含的手势来删除行。

另一个问题是我的大多数屏幕都是UITableViews,因此用户可以简单地滚动UITableView。所以我想知道我是否可以使用双指滑动(垂直)来检测运行代码的手势,而单手滑动以滚动UITableView?

提前谢谢。

尼尔

2 个答案:

答案 0 :(得分: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的文档。

此外,如果您想要检测滑动的方向,则必须设置两个单独的手势识别器。您无法从滑动手势识别器获取滑动的方向,只能获取其注册识别的方向。

答案 1 :(得分:-1)

在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")
}