需要UIResponder链说明
|
在这种情况下,我的
UIButtons
,UIScrollViews
等无法正常工作:
我有基础UIViewController
,它是UIWindow
的根控制器。
在该层的上方,我添加了一些其他的UIViews
,我将其称为“中间层视图”。在顶部,我为叠加对象添加了另一个“ 5”。
中间层视图会定期更改为不同的视图。它使用的ѭ5是来自NIB文件的ѭ2。这是一个例子
if ( mode == eModeShowView1 )
UIViewController* nextController = [[UIViewController alloc] initWithNibName:@\"View1\"...
else if ( mode == eModeShowView2 )
UIViewController* nextController = [[UIViewController alloc] initWithNibName:@\"View2\"...
[UIView insertSubview:nextController.view below:m_overlayView];
现在,当我触摸屏幕时,第一响应者显然是OverlayView
或被触摸的OverlayView
中的任何UIResponder
。
触摸输入的UIEvent
在视图链上沿,但似乎完全跳过了中间层视图和that5上的UIResponders
。它直接跳到根2。
有人知道这是怎么回事吗?
可以通过创建两个UIEvents
解决吗?一个用于叠加视图,另一个用于中间层视图?那可能吗?如果是这样,怎么办?
非常感激任何的帮助。
谢谢,
丰富
没有找到相关结果
已邀请:
1 个回复
裸雷胜檀哭
和
相互视为同级兄弟,而不是超级英雄。因此,您对任何一个的触摸不会被报告给另一个,而是报告给基础
,这对两个兄弟姐妹都是相同的
。 因此,您会发现中间层已被绕过。实际上,您的中间层是同级,而不是超级视图。希望至少能给您前进的道路;)
在视图层次结构中的另一个视图下方插入一个视图。
参数:
该视图将插入另一个视图下方。如果不是siblingSubview的兄弟姐妹,则将其从ѭ20中删除。 同级子视图: 在插入视图上方的兄弟视图。 讨论: 此方法保留视图并将其下一个响应者设置为接收者,即其新的“ 20”。 视图只能有一个超级视图。如果视图已经有一个
并且该视图不是接收者,则此方法在使接收者成为其新的
之前先删除之前的
。