+-----------------------+ +--------------------+
| A | | A |
| +-------------------+ | | +----------------+ |
| |B | | | | C | |
| | | | | | | |
| +-------------------+ | | +----------------+ |
+-----------------------+ +--------------------+
我有一个如上所述的视图层次结构。 (B和C中的每一个占据A的整个空间,每个都是屏幕尺寸。首先添加B,然后添加C)
出于某种原因,C正在获得滚动效果的触摸事件
(B是cocos2d-x层,C(滚动视图)设置scrollViewDidScroll时B的位置
http://getsetgames.com/2009/08/21/cocos2d-and-uiscrollview/
)
我想将触摸事件传递给B,或者当它不滚动时将其传递给子视图。
如何在此处将触摸事件传递给B?
答案 0 :(得分:0)
所以,如果我正确理解你的背景,B和C不会重叠(至少不完全)并共享相同的超级视图。
我看到的唯一可能是定义您自己的自定义窗口,即覆盖
- (void)sendEvent:(UIEvent*)event {
根据需要处理你在A中获得的接触。
有关更改触摸事件的目标视图的示例,请参阅this thread on S.O.。您需要构建自己的流程来处理您必须管理的不同情况,并可能通过进行某种投影来弄乱触摸坐标。
答案 1 :(得分:0)
WWDC 2012 scroll view session涵盖了同样的问题。
步骤是..
1. You hide your scrollview.
2. place dummy view where scrollview would be and attach scrollview's panGestureRecognizer to this view.
当它不滚动时,看到触摸进入虚拟视图后面的视图。