我目前正在开发一个应用程序,其中包含大量子视图的主视图。现在我有两个特定的子视图,我只希望其中一个是“可触摸”的。所以两者都应该能够响应触摸事件,但它不能同时响应。由于我有其他子视图应该能够同时触摸我不能使用多点触控或exclusiveTouch属性。 有什么想法吗?也许我可以将两种视图分组到单触区域。
提前致谢
答案 0 :(得分:1)
在你的app委托或其他单身人士中粘贴一个读写属性,让我们称之为viewBeingTouched
。确保使用@property
而不是 nonatomic
。
使你的两个视图实例覆盖UIResponder
方法:
在touchesBegan中,检查viewBeingTouched
的值。如果是nil
,请将其设置为self
并调用super的实现。否则,什么都不做。
在touchesEnded中,检查viewBeingTouched
的值。如果是self
,请将其设置为nil。
得到它?获取触摸的第一个视图抓取属性并阻止另一个注册它。
答案 1 :(得分:0)
将逻辑放入其父级中(暂时)禁用未触及的逻辑(userInteractionEnabled = NO)。
当然,有人仍然可以同时将手指放在每个手指上。您可以确定哪个视图最接近触摸的中心。