Detectar eventos táctiles en UIScrollView Y en los componentes de UIView [que se colocan dentro de UIScrollView]

Tengo UIViewController en mi proyecto de iPad de storyboard simple que contiene UIScrollView que se coloca sobre toda la superficie (1024 x 768). He creado 3 archivos XIB que son UIViews que mi aplicación carga al inicio en viewDidLoad y los agrego a UIScrollView. Cada uno de estos 3 archivos XIB contiene solo un UIButton.

Esta es la jerarquía:

~ UIViewController (UIViewControllerClass es la clase para este UIViewController)

~~ UIScrollView (contiene 3 UIViews idénticos)

~~~ UIView (UIViewClass es el propietario del archivo para este archivo XIB)

~~~~ UIButton

Me gustaría que mi UIViewControllerClass tome conciencia de ambos: toque en cualquier parte del componente UIScrollView Y si se toca UIScrollView, si se toca UIButton dentro de UIView en UIScrollView, para tener información de que se toca exactamente ese botón.

Hice IBAction dentro de UIViewClass para tocar en UIButton dentro de UIView en UIScrollView y cuando configuro User Interaction Enabled = YES en todos los elementos (UIViewController, UIView y UIScrollView) este método se llama como debería.

Pero en este punto, mi UIViewControllerClass no es consciente de que se produjo un toque dentro de UIScrollView en ese UIButton. Hice un reconocedor táctil como este:

UITapGestureRecognizer *touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch)];
touch.numberOfTouchesRequired = 1;

y lo agregó al componente UIScrollView. De esta manera, puedo detectar eventos táctiles en el componente UIScrollView en UIViewControllerClass, pero ya no se llama el controlador de eventos táctiles para UIButton en UIView que está dentro de UIScrollView.

Entonces, necesito tener estas dos informaciones en UIViewControllerClass:

Toque en el componente UIScrollView fue hechoToque en UIButton en UIView que está dentro de UIScrollView (si se tocó este botón) se hizo

Supongo que adjuntar el reconocedor de eventos táctiles a todo el componente UIScrollView no es una solución, ya que deshabilita todos los controladores de eventos táctiles que escribí dentro de UIViewClass.

Creo que la solución es que, de alguna manera, los toques que se hacen en componentes en UIView dentro de UIScrollView deberían enviarse a UIViewControllerClass, pero no encontré la manera de hacerlo.

Si alguien me puede ayudar, estaría muy agradecido. Gracias por adelantado.

[edit # 1: RESPUESTA por Zheng]

El gesto del grifo debe tenercancelsTouchesInView opción establecida enNO!

Para mi caso anterior, esta línea resuelve todo:

touch.cancelsTouchesInView = NO;

Muchas gracias a Zheng.

Respuestas a la pregunta(3)

Su respuesta a la pregunta