Как передать событие касания из подчиненного представления UIScrollView в его супервизор

У меня три взгляда на окно. UIView содержит UIScrollView, а UIScrollView содержит UILabel. Все эти представления имеют размер 320 * 460. Теперь я хочу обработать событие длительного нажатия на UILabel и передать событие касания в UIView. Переписываю на этикетке touchesEnded: чтобы узнать время печати. Если времени достаточно, я использую [[self nextResponder] touchesBegan: touch withEvent: event], чтобы передать его. Однако даже если я перепишу UIScrollview и добавлю к нему [[self nextResponder] touchesBegan: touches withEvent: event], UIView не сможет получить событие touchesBegan. И, если я установил userInteractionEnabled = NO для UIScrollView, UIView получит touchedBegan, а UILabel не сможет его получить.

Как я могу сначала получить событие касания в UILabel и передать его в UIView, если мне нужно.

Спасибо.


person moyu    schedule 07.03.2012    source источник
comment
Спасибо за вашу помощь. Я достиг своей цели, реализовав метод делегата в моем лейбле и достигнув его в моем UIViewController.   -  person moyu    schedule 07.03.2012


Ответы (2)


Я так понял ваш вопрос.

  1. вам нужно долгое нажатие в UiLabel.
  2. вам нужно обнаружить касание в UIView.

У вас есть прокрутка между UIView и UILabel.

  1. Добавьте UILongpressGesture в UILabel. (см. здесь)
  2. передать касания из UIscrollview.
person Vignesh    schedule 07.03.2012

Попробуйте использовать UITapGestureRecognizer для обнаружения события касания в UIScrollView

  UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self         action:@selector(singleTapGestureCaptured:)];
  [scrollView addGestureRecognizer:singleTap];    

и вы получите штрихи в:

  - (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
 { 
   CGPoint touchPoint=[gesture locationInView:scrollView];
 }
person iphonecool    schedule 07.03.2012