2012-06-19 3 views
1

내 응용 프로그램에는 하위 화면 (다른 화면)이있는 기본 화면이 있지만,이 하위보기는 오른쪽으로 320 번 움직여 방금 막 표시됩니다. 그 효과는 주 화면이 왼쪽으로 320 이동하고 주 화면을 숨기고 하위보기이기 때문에 다른 화면을 보여줍니다. 문제는 다른 화면이 주 화면 (수퍼 뷰) 경계를 벗어 났기 때문에 터치 이벤트를 수신하지 못하는 것입니다. 버튼을 탭할 수 있도록이 다른 화면에도 터치 이벤트를 수신하려면 어떻게해야합니까?기본보기 외부의 하위보기는 터치 이벤트를 수신하지 않습니다.

답변

0

설명을 보려면 this post on S.O.을보십시오. 해결 방법은 다음 코드를 사용하여 자신의 hitTest를 구현하는 것입니다.

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 

    BOOL isInside = [super pointInside:point withEvent:event]; 

    // identify the button view subclass 
    UIButton *b = (UIButton *)[self viewWithTag:3232]; 
    CGPoint inButtonSpace = [self convertPoint:point toView:b]; 

    BOOL isInsideButton = [b pointInside:inButtonSpace withEvent:nil]; 

    if (YES == isInsideButton) { 

     return isInsideButton; 

    } // if (YES == isInsideButton) 

    return isInside; 
} 

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

    UIView *v = nil; 

    v = [super hitTest:point withEvent:event]; 

    return v; 
} 
관련 문제