2017-02-18 10 views
0

여러 개의 Windows를 구현 중입니다.여러 개의 Windows간에 이벤트를 전달하는 방법

다른보기가 전환 될 때마다 하단 최소보기가 항상 맨 위에 있어야합니다.

주 창은 두 번째 창 아래에 배치됩니다. 혼란없이 별도의 뷰를 처리 할 수있는 훌륭한 방법을 제공합니다. 주 창에 새보기 컨트롤러를 표시하거나 프레젠테이션하거나 푸시합니다.

하지만 주된 문제는 두 번째 창에서 주 창으로 이벤트를 전달하는 것이 아닙니다. 두 번째 창은 아래쪽 영역을 제외하고 투명한 배경을 가지며 투명한 배경의 이벤트를 두 번째 창으로 전달해야합니다.

enter image description here 계층화 된 창의 이벤트를 처리하는 방법을 알고있는 사람이 있습니까?

답변

0

아래 코드를 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; 
}