如何在多个uiwindows之间传递事件

Posted

技术标签:

【中文标题】如何在多个uiwindows之间传递事件【英文标题】:How to deliver events between multiple uiwindows 【发布时间】:2017-02-18 08:27:15 【问题描述】:

我正在实现多 uiwindows。

原因是当其他视图转换时,底部最小视图必须始终保持在顶部。

主窗口位于第二个窗口之下。它提供了一种很好的方式来处理单独的视图,而不会造成任何混乱。例如,在主窗口中展示或推送新的视图控制器。

但主要问题不是将事件从第二个窗口传递到主窗口。 第二个窗口除了底部区域外具有透明背景,并且必须将透明背景中的事件传递到第二个窗口。

有没有人知道在分层窗口中处理事件的方法?

【问题讨论】:

【参考方案1】:

我确实在 uiwindow 中实现了以下代码。 当事件到达透明窗口区域时,此代码会将事件传递到下面的窗口。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

    UIView *resultView = [super hitTest:point withEvent:event];

    if (resultView == self) 
        NSLog(@"touched in transparent window !!");
        return nil;
     else 
        NSLog(@"touched in view!!");
        return resultView;
    

    return resultView;
 

【讨论】:

以上是关于如何在多个uiwindows之间传递事件的主要内容,如果未能解决你的问题,请参考以下文章