2012-09-06 49 views
3

你好我观察一些在iOS的自定义视图,在那里我有侧自定义视图按钮奇怪的,我找的文件或你的答案传递给解释一下为什么我有这样的观察怪异IOS触摸事件与UIGestureRecognizer

我有一个自定义视图(UIView的的亚类),它包含了一个简单的按钮,我结合经由addTarget按钮触摸事件:动作与UITouchUpInside,我只是结合它选择器到的NSLog消息

如果一个简单的方法显示自定义视图并点击按钮,您可以在控制台中看到消息,一切按预期工作。

但是,如果添加了一个UIGestureReognizer到自定义视图,并运行它,当你按一下按钮,它不再打印消息,为什么??? 我做了更深入的调查,并通过查看自定义视图中则hitTest方法(视图包含按钮)(我重写,但我并没有做什么,我只是超级再次调用)时,则hitTest正在恢复正确的观点,即当我点击按钮,自定义视图的则hitTest方法返回的UIButton

我不明白这里的事件链,能有人指点,解释这个文件?

在我看来,当您将regonizer添加到按钮的容器视图时,出于某种原因,按钮不知道如何处理该事件,因此会要求其超级视图(在此情况下为自定义视图)来处理它,但为什么?我已经通过UITouchUPInside

绑定事件handeler到按钮请请帮助我想这

回答

0

设置你识别的cancelsTouchesInView财产明白NO

+0

喜亚当,感谢您的回复,和它的作品。但你能解释一下到底发生了什么吗?我想我要问的是,当我有如上所述的手势识别器时,当我触摸按钮,谁先处理触摸?自定义视图容器(具有识别器)或按钮?碰撞测试表明按钮是触摸事件发生时的第一个人,但您的解决方案似乎表明容器视图阻止事件? – user1233587

+0

识别器首先处理它,然后决定是否通过它。 – Adam