2013-08-08 4 views
1

A 및 B는 2 UIWindow이고 B는 UIWindowLevel이 높습니다. GSevent/UITouch가 상위 UIWindow에 침투하여 다른 UIWindow (iOS, theos, jailbreak)에서 작동합니다.

지금 내가 UIWindow B 내부의 지점을 터치하면 B가 event--

을 UITouch하는 "투명"가되고 싶어요, UIWindow A는 터치 이벤트를 받게됩니다.

어떻게하면됩니까? 일부 ios 클래스에 연결하여이를 달성 할 수 있습니까?

+-------------------+ 
|  A    | 
| +--------+  | 
| | B  |  | 
| |  |  | 
| +--------+  | 
|     | 
+-------------------+ 

답변

0

UIView '투명'에 다음과 같은 재정을 시도해보십시오

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    return NO; 
} 

을 대안은 다음과 같은 우선입니다 :

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    return self.superview; 
} 
+0

당신이 재정의 메서드를 구현하는 방법에 대한 자세한 정보를 제공 할 수 ? 윈도우 B는 다음과 같은 코드를 통해 생성됩니다 '% 후크 발판 % 새 (V @ : - (무효) floatWinOn { // ... floatWindow = [[UIWindow ALLOC] initWithFrame : RECT] floatWindow.windowLevel = winlevel; [floatWindow setUserInteractionEnabled : NO]; [floatWindow setHidden : NO];}' – wesley6j

+0

'B'에서 재정의됩니다. 'A'와'B' 모두'UIView'를 서브 클래 싱해야합니다. –

+0

어디에서 pointInside : withEvent : 메서드를 삽입해야합니까? – wesley6j