Обнаружение сенсорного события в UIScrollView И в компонентах UIView [который находится внутри UIScrollView]

У меня есть UIViewController в моем простом проекте раскадровки IPad, который содержит UIScrollView, который размещен по всей поверхности (1024 x 768). Я создал 3 файла XIB, которые представляют собой UIViews, которые мое приложение загружает при запуске в viewDidLoad, и добавляют их в UIScrollView. Каждый из этих 3 файлов XIB содержит только одну кнопку UIB.

Это иерархия:

~ UIViewController (UIViewControllerClass is class for this UIViewController)

~~ UIScrollView (contains 3 identical UIViews)

~~~ UIView (UIViewClass is File's Owner for this XIB file)

~~~~ UIButton

Мне бы хотелось, чтобы мой UIViewControllerClass осознавал и то и другое: касание в любом месте компонента UIScrollView И при касании UIScrollView, если касаться UIButton внутри UIView в UIScrollView, чтобы получить информацию, касающуюся именно этой кнопки.

Я сделал IBAction внутри UIViewClass для прикосновения к UIButton внутри UIView в UIScrollView, и когда я устанавливаю User Interaction Enabled = YES для всех элементов (UIViewController, UIView и UIScrollView), этот метод вызывается, как и должно быть.

Но в этот момент мой UIViewControllerClass не знает, что касание произошло внутри UIScrollView на этой UIButton. Я сделал сенсорный распознаватель, как это:

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

и добавил его в компонент UIScrollView. Таким образом, я могу обнаружить сенсорное событие в компоненте UIScrollView в UIViewControllerClass, но обработчик сенсорного события для UIButton в UIView, который находится внутри UIScrollView, больше не вызывается.

Итак, мне нужно иметь эти две информации в UIViewControllerClass:

Touch on UIScrollView component was made Touch on UIButton in UIView which is inside UIScrollView (if this button was touched) was made

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

Я думаю, что решение состоит в том, что каким-то образом штрихи, которые делаются на компонентах в UIView внутри UIScrollView, должны быть отправлены до UIViewControllerClass, но я не нашел способа сделать это.

Если кто-нибудь может мне помочь, я буду очень признателен. Заранее спасибо.

[edit #1: ANSWER by Zheng]

Жест должен бытьcancelsTouchesInView опция установлена вNO!

Для моего случая выше эта строка решает все:

touch.cancelsTouchesInView = NO;

Большое спасибо Чжэн.

Ответы на вопрос(3)

Ваш ответ на вопрос