如何在IB中使用手势识别器(iPhone/iPad)?

13

我刚刚发现了IB中的手势识别器,我想利用它们。我尝试了点击手势识别器,但它似乎不起作用。这是我所做的事情:

  1. 在IB中将“Tap Gesture Recognizer”拖放到我的视图控制器中。

  2. 在.m文件中添加了以下方法...

    - (IBAction)viewTapped:(UIGestureRecognizer *)sender
    {
        // Do some stuff
    }
    
  3. 在.h文件中声明了该方法...

  4. - (IBAction)viewTapped:(UIGestureRecognizer *)sender;
    
  5. 最后我将IBAction与IB中的“Tap Gesture Recognizer”链接起来。

当我尝试运行它时,没有成功 - 我错过了什么吗?

3个回答

23

在nib文件中对手势识别器进行控制点击。在弹出的菜单中的“引用输出集合”部分下,是否显示任何连接?它需要连接到视图的gestureRecognizers集合,就像这样:

connections inspector

如果没有连接,请将识别器拖到您想要附加到的视图上。您可以将其拖到设计区域中的视图上,也可以将其拖到左侧大纲中的视图行上。


1
这很完美,但你必须将视图拖入手势识别器中,或者至少我是这样做的,而不是反过来,希望这可以帮到你。 - Stornu2

6
在属性检查器中,请确保“State”已启用,并选择“在视图中取消”和“延迟开始”事件。

1

我在使用UIImageView的手势识别器时遇到了问题。为了解决这个问题,我不得不检查UIImageViewuserInteractionEnabled属性。


使用普通的UIView也遇到了同样的问题。这似乎是必需的。 - Roy Shilkrot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接