识别用户剪切/滑动手势 (UISwipeGestureRecognizer)

Posted

技术标签:

【中文标题】识别用户剪切/滑动手势 (UISwipeGestureRecognizer)【英文标题】:Recognize user cut/swipe gesture (UISwipeGestureRecognizer) 【发布时间】:2010-12-27 03:29:19 【问题描述】:

我使用下面的代码并为'self.view'工作,但不适用于imageview和方向只能添加一个方向如何使用四个方向(右,左,uo,下)?

UISwipeGestureRecognizer *swipe =[[UISwipeGestureRecognizer alloc]initWithTarget:selfaction:@selector(sr)];
swipe.direction =UISwipeGestureRecognizerDirectionRight;
[imageview addGestureRecognizer:swipe];
[swipe release];

【问题讨论】:

剪切视图是什么意思? 表示开始触摸,例如从控件的左侧到右侧 这并不是我们在 iPhone 世界中所说的那样......或者至少我从来没有听说过这样说 像“水果忍者”中的切水果或“切绳子”中的绳子 让我看一下:在 iPhone 世界中,这被称为“SWIPE”。 【参考方案1】:

代表

touchesBegan: 

touchesEnded:

【讨论】:

【参考方案2】:

//--------在imageview分配中添加这段代码-------//

        imageview.userInteractionEnabled = YES;

对于四个方向,您必须使用两个 UISwipeGestureRecognizer:-

      UISwipeGestureRecognizer *swipeRightLeft =[[UISwipeGestureRecognizer     alloc]initWithTarget:selfaction:@selector(sr)];

   [swipeRightLeft setDirection:(UISwipeGestureRecognizerDirectionRight |UISwipeGestureRecognizerDirectionLeft )];

   [imageview addGestureRecognizer:swipeRightLeft];

    [swipeRightLeft release];

    UISwipeGestureRecognizer *swipeUpDown =[[UISwipeGestureRecognizer     alloc]initWithTarget:selfaction:@selector(sr)];

      [swipeUpDown setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown )];

    [imageview addGestureRecognizer:swipeUpDown];

    [swipeUpDown release];

【讨论】:

【参考方案3】:

尝试启用交互:

yourImageView.userInteractionEnabled = YES;

并添加一些方向,如下所示:

swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;

【讨论】:

【参考方案4】:

如果您的应用只在 ios 3.2+ 上运行没问题,最好的方法是使用 UIGestureRecognizer API 类。其实还有一个UISwipeGestureRecognizer子类(docs are here)。

要做你想做的事,做这样的事情:

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)];
swipe.direction = UISwipeGestureRecognizerDirectionRight;
[yourImageView addGestureRecognizer:swipe];
[swipe release];

要更改为任何其他方向,请查看上面的文档链接 - 所有四个方向都有一个常量。

【讨论】:

谢谢,我使用此代码并适用于“self.view”,但不适用于“imageview” 嘿,如果你得到了解决方案,那么你可以把它放在答案中......因为我在 imageView 手势中面临的同样问题适用于标签、视图等......如果你请发送解决方案明白了

以上是关于识别用户剪切/滑动手势 (UISwipeGestureRecognizer)的主要内容,如果未能解决你的问题,请参考以下文章

暂时禁用手势识别器滑动功能

快速推迟手势识别器(UISwipeGestureRecognizer)

是否可以将手势识别器附加到按钮,以便用户在按下按钮之后/期间向上滑动?

为啥滑动手势识别器在 swift 中会出错?

添加手势识别器以允许在 Swift 中的 MapView 上水平滑动

仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势