2012-02-20 3 views
0

"Comic Strip"및 "Balloon Sticky Free"라고하는 앱을 참조했습니다.터치 이벤트를 다른 객체에 전달하는 방법은 무엇입니까?

내가 말풍선을 추가하고 s.b 또는 s.b의 꼬리를 터치하면 작동합니다. 그러나 꼬리의 주위 또는 s.b와 s.b의 꼬리 사이를 만지면 작동하지 않습니다. 그리고 사진은 터치되어 s.b 아래에서 작동합니다.

그래서 나는 사각형 또는 tailRect 처음 터치 할 때 의미가 있습니다 hitTest:withEvent.

사용하려고했습니다. 하지만 객체의 다른 부분을 터치하면 사각형이나 tailRect를 다시 터치해도 작동하지 않습니다.

이 코드를 어떻게 수정합니까? 모르겠다. 도와주세요.

- (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    UIView *hitView = [super hitTest:point withEvent:event]; 

    if(CGRectContainsPoint(rectangle, currentPt)==YES || CGRectContainsPoint(tailRect, currentPt)==YES) 
     return hitView; 
    else 
     return nil; 
} 

답변

1

대신 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event을 무시해보십시오.

또는 Ole Begemann's OBShapedButton을 살펴보십시오. 코드는 UButton 대신 UIView에서 작동하도록 을 쉽게 수정할 수 있습니다.

0

이 게시물을 참조하십시오. horizontal scrolling. 이 코드를 사용하면 모든 UI 이벤트를 단일 UIWindow 클래스에서 가져올 수 있습니다. 컨트롤을 적절하게 전달하는 코드를 작성해야합니다.

관련 문제