2012-01-04 2 views
1

아주 간단한 질문, 아마도 그렇게 간단하지 대답 :다른보기 아래의 버튼에 터치를 전달하려면 어떻게해야합니까?

나는 접촉을 받아야하는 분명한 견해를 가지고있다. 밑에 이것은 UIButton이며, 나는 또한 터치를 받고 싶습니다. (들어 가지 않을 이유 때문에, 아래에 있어야합니다). 버튼을 누른 경우 명확한보기가 접촉을 수신하는 것을 원하지 않습니다.

어떻게하면됩니까?

편집 :

최종 해결책 :

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


    for (UIView * view in self.subviews) 
    { 
     if ([view isKindOfClass:[UIButton class]]) { 
      CGPoint pointInButton = [view convertPoint:point fromView:self]; 
      if ([view pointInside:pointInButton withEvent:event]) { 
       return view; 
      } 
     } 
    } 
    return [super hitTest:point withEvent:event]; 
} 
+0

사용자 정의보기에서'userInteractionEnabled'를 false로 설정해 보셨습니까? – aroth

+0

@aroth 감동을 받기 위해서는 선명한 견해가 필요합니다. 죄송합니다 질문에 더 구체적이어야합니다 (지금 내가 편집 할 것입니다). –

답변

2

는 밝은 전망에게 UIButton에 대한 참조를 지정합니다. 투명보기의 pointInside:withEvent: 메소드를 재정의하십시오. 재정의 할 때 포인트가 버튼 안에 있는지 확인합니다 (버튼에 을 전송). 포인트가 버튼에 있으면 NO를 반환합니다. 포인트가 버튼 외부에 있으면 return [super pointInside:point withEvent:event]입니다.

+1

여기에서 추가 토론 : http://stackoverflow.com/questions/1694529/allowing-interaction-with-a-uiview-under-another-uiview – aroth

+0

Thanks !! 이것은 훌륭한 대답입니다. 나는 약간의 노력을 고수하고있다 - 당신이 왜 내가 사용하는 코드가 작동하지 않을 것이라고 말할 수있는 모든 기회 (나는 그것을 나의 질문에 추가했다)? –

+0

아하 ...이 줄로 고쳐 썼습니다 : CGPoint pointInButton = [view convertPoint : point fromView : self]; 감사 :) –

관련 문제