2009-09-29 5 views
4

그래서 여러 건을 잡아서 번호를 결정하고 각 터치가 발생한 위치와 UIView UIViewController간에 다른 동작을보고 있습니다.UIView 대 UIViewControllers에서 터치 이벤트 처리에 건 드리면

기본적으로 이벤트 처리기는 다음과 같이 코딩됩니다.이 경우에는 touchesEnded이지만 실제로는 문제가되지 않습니다. 뷰에서 어떤 일이 발생하는지는 전체 컬렉션을 얻는 것입니다.하지만 컨트롤러에서는 한 번에 하나의 터치 만 가져옵니다. 즉, 터치의 컬렉션은 없지만 발생 된 각 터치에 대해 TouchesEnded가 실행됩니다. 같은 순간에.

하위보기를 최대한 동일하게 추가합니다 ... 누군가가 내게 무슨 일이 일어나는지 알려주실 수 있습니까? 왜 컨트롤러 버전에서 나에게 컬렉션을 제공하지 않습니까?

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    int total = 0; 

    for (UITouch *touch in touches) 
    { 
     for(UIView *myView in [contentView subviews]) 
     { 
      if (CGRectContainsPoint([myView frame], [touch locationInView:self.view])) 
       total++; // this is always 1 for the UIViewController 
      // but I get the full number within the UIView version 
     } 
    } 
} 

답변

0

나는 당신이 감동을 느끼고 있지만보기가 다르다고 생각합니다. contentView가 동일하고 서브 뷰가 동일한 지 확인하십시오.

0

나는 내가 옳다는 것이 확실하지 않지만이 일은 항상 나를 위해 일한다.

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
      UITouch *touch = [touches anyObject]; 
     If(touch.view==your view) 
     { 
       NSLog("do your task here"); 
     } 
} 
관련 문제