类似于这个线程和许多其他线程,我有一个带有NIB文件的视图控制器,它具有这种布局......
上面的所有三个项目都是NIB中主视图的子视图.UIView(c)是iPhone屏幕的完整大小,位于层次结构之上.在它上面,我放置了一个基于该视图中当前触摸位置动画的角色.然而问题是,在这个视图接收触摸时,我无法触及它下面的ScrollView(b).我仍然需要使用(c)中的触摸,但还需要将相关的触摸/滑动传递到下面的UIScrollView.
任何人都可以建议如何做到这一点?我已经阅读了有关使用hittest的各种帖子,但不想完全抵消这些触摸,我只需要转发它们,以便滚动视图仍能正常工作.
谢谢,
我UIScrollView有一种习惯UIView,它绝对需要倾听他内心发生的所有触摸事件.
起初,我得到的只是touchesBegan:和touchesCancelled:事件.不touchesMoved:,不touchesEnded:.事实上,所有拖动手势都被上面取消了UIScrollView.这通过以下设置解决:
_scrollView.canCancelContentTouches = NO;
Run Code Online (Sandbox Code Playgroud)
现在,行为会根据UIView上第一次触摸的"时间长度"而变化.如果它很短,则管理相对拖动,因为它是一个滚动UIScrollView.如果它很长,那么我将在touchesMoved:UIView中获取事件.
我想要的是永远收到touchesMoved:我的UIView.我该怎么做?