2009-09-29 2 views
4

Итак, я фиксирую несколько касаний и определяя число и где произошло каждое касание, и я вижу различное поведение между UIView UIViewController.затрагивает обработку событий касания в UIView vs UIViewControllers

В принципе, обработчик событий закодирован ниже: (в этом случае touchsEnded, но это действительно не имеет значения). То, что происходит в представлении, заключается в том, что я получаю всю совокупность касаний, но в контроллере я получаю только одно касание одновременно, то есть никогда не бывает набора штрихов, но TouchesEnded выполняется для каждого касания, которое произошло в тот же момент.

Я добавляю subviews как можно более точно ... Может ли кто-нибудь «испануться ко мне, что происходит? Почему версия контроллера не дает мне коллекцию?

-(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"); 
     } 
} 
Смежные вопросы