在iPhone上处理多个触摸

时间:2010-02-02 15:05:04

标签: iphone cocoa-touch

我目前正在开发一个应用程序,其中包含大量子视图的主视图。现在我有两个特定的子视图,我只希望其中一个是“可触摸”的。所以两者都应该能够响应触摸事件,但它不能同时响应。由于我有其他子视图应该能够同时触摸我不能使用多点触控或exclusiveTouch属性。 有什么想法吗?也许我可以将两种视图分组到单触区域。

提前致谢

2 个答案:

答案 0 :(得分:1)

在你的app委托或其他单身人士中粘贴一个读写属性,让我们称之为viewBeingTouched。确保使用@property 而不是 nonatomic

使你的两个视图实例覆盖UIResponder方法:

  1. 在touchesBegan中,检查viewBeingTouched的值。如果是nil,请将其设置为self并调用super的实现。否则,什么都不做。

  2. 在touchesEnded中,检查viewBeingTouched的值。如果是self,请将其设置为nil。

  3. 得到它?获取触摸的第一个视图抓取属性并阻止另一个注册它。

答案 1 :(得分:0)

将逻辑放入其父级中(暂时)禁用未触及的逻辑(userInteractionEnabled = NO)。

当然,有人仍然可以同时将手指放在每个手指上。您可以确定哪个视图最接近触摸的中心。