2013-07-17 2 views
1

를 수신 뷰를 알고하는 방법 난 단지 내가 그 안에 아주 작은 하위 영역을 탭하면 내 탭 제스처에 반응하는 UIButton 있습니다. 나는 assuming인데, 단추 안의 다른 위치를 탭하면 다른보기가 내 제스처를 삼키는 것일 수 있습니다.현재 제스처

문제는 정확히 탭을 수신하는 UIView 알 수있는 방법이 ...입니까? 나는 모든 제스처 처리기를 모든 견해에 첨부하도록 강요 할 수 있음을 알고 있습니다. 그러나 너무 많은 작업처럼 보입니다. 어떤 아이디어?

갱신 : 아메드의 대답은 아래 나는 또한있는 UIView의 recursiveDescription 신속하게 잘못된보기를 찾기 위해 여기에 추가 .. 완벽했다. 내가 NSLog 줄에 중단 점을 넣을 경우

예 :

- (void)sendEvent:(UIEvent *)event 
{ 
    [super sendEvent:event]; 
    UIView *touchReceipientView =((UITouch *)[event.allTouches anyObject]).view; 
    NSLog(@"View = %@ ",touchReceipientView); 
} 

나는 (예를 들어)이 출력을 얻을 :

(lldb) po [touchReceipientView recursiveDescription] 
<UIView: 0x1fd16470; frame = (0 430; 320 40); layer = <CALayer: 0x1fd164d0>> 
    | <UIButton: 0x1fd13030; frame = (297 0; 18 19); opaque = NO; tag = 11; layer = <CALayer: 0x1fd130f0>> 
    | | <UIImageView: 0x1fd13190; frame = (-41 -40.5; 100 100); alpha = 0; opaque = NO; userInteractionEnabled = NO; tag = 1886548836; layer = <CALayer: 0x1fd131f0>> 
    | | <UIImageView: 0x1fd14d00; frame = (1 2; 16 15); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1fdc8e50>> 

나 잘못된 즉시 UIView의 식별하게하는!

+0

루프, 그들에게'isFirstResponder'을 보낼 수 있습니다. 나는 이미 gestureRecognizer 객체를 가지고 있다면 –

+0

gestureRecognizer.view – Desdenova

+0

@Desdenova 나는이 질문이없는 것 사소한 것 같아? – abbood

답변

2

당신은 UIApplication 하위 클래스와 이벤트를 수신하는 사용자를 확인할 수 있습니다. 앱 키 창에서 시작 뷰를 통해

과 main.m에서

,

@interface MyApplication : UIApplication 

@end 


@implementation MyApplication 

- (void)sendEvent:(UIEvent *)event 
{ 
    [super sendEvent:event]; 
    NSLog(@"View = %@", ((UITouch *)[event.allTouches anyObject]).view); 
} 

@end 





int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, NSStringFromClass([MyApplication class]), NSStringFromClass([MyAppDelegate class])); 
    } 
} 
+0

당신은'@implementation MyApplication'을 올바르게 사용한다고 가정하고 있습니까? – abbood

+0

와우는 매력처럼 일했습니다! – abbood

+0

예, MyApplication에 대해 설명합니다. 나는 그것을 편집 할 것이다. –