10

我想在我的应用程序中添加一个手势,这样当用户垂直滑动时,它会触发一个方法来做某事。滑动可以向上或向下。我从来没有对手势做过任何事情,所以这是我第一次使用手势,而不是 UITableView 中包含的用于删除行的手势。

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

先感谢您。

尼尔

4

2 回答 2

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的文档。

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

于 2011-01-09T15:42:02.713 回答
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")
}
于 2017-11-06T05:27:42.727 回答