我想在我的应用中添加一个手势,因此当用户垂直滑动时会触发一种方法来执行某些操作。滑动可以向上或向下。我从来没有做任何手势,所以这是我第一次使用手势而不是UITableView中包含的手势来删除行。
另一个问题是我的大多数屏幕都是UITableViews,因此用户可以简单地滚动UITableView。所以我想知道我是否可以使用双指滑动(垂直)来检测运行代码的手势,而单手滑动以滚动UITableView?
提前谢谢。
尼尔
答案 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
}
使用UIGestureRecognizer和UISwipeGestureRecognizer的文档。
此外,如果您想要检测滑动的方向,则必须设置两个单独的手势识别器。您无法从滑动手势识别器获取滑动的方向,只能获取其注册识别的方向。
答案 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")
}