xcode UISwipeGestureRecognizer 手势起始点

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3830836/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 19:48:01  来源:igfitidea点击:

UISwipeGestureRecognizer gesture start point

iphoneobjective-ccocoa-touchxcodeuigesturerecognizer

提问by Rupert

Is it possible to get a gesture start point from a UISwipeGestureRecognizer. like how its possible in

是否可以从 UISwipeGestureRecognizer 获取手势起点。就像它可能在

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch * touch = [touches anyObject];
    gestureStartPoint = [touch locationInView:self];
}

回答by Yannick Compernol

According to the UISwipeGestureRecognizer documentationyou can:

根据UISwipeGestureRecognizer 文档,您可以:

You may determine the location where a swipe began by calling the UIGestureRecognizer methods locationInView: and locationOfTouch:inView:. The former method gives you the centroid if more than one touch was involved in the gesture; the latter gives the location of a particular touch.

您可以通过调用 UIGestureRecognizer 方法 locationInView: 和 locationOfTouch:inView: 来确定滑动开始的位置。如果手势中涉及多个触摸,前一种方法会为您提供质心;后者给出了特定触摸的位置。

PS: you really should first look at the documentation, the answer was in the class reference of UISwipeGestureRecognizer, shouldn't be hard to find. Part of being a developer is being able to look things up, Apple has excellent documentation, use it!

PS:你真的应该先看看文档,答案在 UISwipeGestureRecognizer 的类参考中,应该不难找到。作为开发人员的一部分是能够查找内容,Apple 有出色的文档,请使用它!

回答by Vyachaslav Gerchicov

WARNING

警告

Amy's answer is totally INCORRECT!Recognizer may generate UIGestureRecognizerStateBeganbut on swipe UISwipeGestureRecognizergenerates UIGestureRecognizerStateEndedevent only.

艾米的回答完全不正确识别器可能会生成UIGestureRecognizerStateBegan但仅在滑动时UISwipeGestureRecognizer生成UIGestureRecognizerStateEnded事件。

But touchesBegan:works instead. The problem is if it supports user interaction then it works for current view only and you need to pass it to a parent view.

touchesBegan:相反。问题是如果它支持用户交互,那么它仅适用于当前视图,您需要将其传递给父视图。

回答by Amy

Yes, it is possible. See code below:

对的,这是可能的。见下面的代码:

if ([recognizer state] == UIGestureRecognizerStateBegan || [recognizer state] != UIGestureRecognizerStateChanged) {
    NSLog(@"StateBegan :::::");
}