2012-04-18 4 views
0

У меня есть несколько UIImageView в качестве подвид UIView, которые выступают в качестве холста. ImageViews получают события касания, поэтому я могу их перемещать. Если я панорамирую два вида, каждый палец на каждом из них, я могу одновременно перемещать два вида. Я не хочу этого.Избегайте одновременного перемещения двух видов

Я проверил свойство maximumNumberOfTouches в супервизоре, но это влияет на это представление, но это не мешает тому, что каждый другой субвью получает событие касания.

Любые идеи, как избежать такого поведения? Thanks

ответ

1

Как насчет того, чтобы установить флаг, который уже перемещается, и жест панорамы во всех видах проверяет этот флаг перед тем, как перемещать их виды? Просто установите флаг в false, как только представление перестало перемещаться.

+0

Да, установите и проверьте флаг в контроллере просмотра или делегате приложения. – ader

+0

Спасибо, я решил изменить дизайн приложения и иметь разные контроллеры представлений, потому что на самом деле я работал над концептуально разными видами. Во всяком случае, ваше решение сработало. –

0

вы можете сделать так, расширить UIImageView в качестве пользовательских UIView может назвать YouImageView

в сенсорную случае

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    for (UIView *v in self.superview.subviews) 
    { 
     if (v != self) 
     { 
      v.userInteractionEnabled = NO; 
     } 
    } 

} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    for (UIView *v in self.superview.subviews) 
    { 
     v.userInteractionEnabled = YES; 
    } 

} 

сделано!