Допустим, следующая установка:
Существует только горизонтальная прокрутка, прозрачный UIScrollView
(прямоугольник с голубоватым фоном и красной рамкой) и бесконечное количество экземпляров UIImageView
(красноватые квадраты), являющихся подпредставлениями одного и того же UIView
(self.view
).
UIScrollView
выдвигается вперед
[self.view bringSubviewToFront:scrollView]
в содержащем UIViewController
.
Должны быть достигнуты следующие результаты: UIScrollView
должен получать жесты смахивания влево/вправо для горизонтальной прокрутки, тогда как UIImageViews
, скрытый UIScrollView
, должен получать жесты смахивания с направлением вверх/вниз, которые добавляются следующим образом:
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpGestureHandler:)];
swipeUpGesture.direction = UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown;
[imageView addGestureRecognizer:swipeGesture];
Это работает, когда UIImageView
не закрыто UIScrollView
, но, очевидно, не работает, когда UIScrollView
находится перед указанными представлениями.
Подводя итог, можно сказать, что UIScrollView
должен пересылать событие/жест смахивания вверх/вниз конкретному базовому UIImageView
, но при этом получать обычное событие/жест смахивания влево/вправо для горизонтальной прокрутки.
Из того, что я прочитал в документации, было бы легко решить, будет ли UIImageViews
содержаться внутри UIScrollView
- однако это невозможно в этой настройке, и я почти уверен, что должно быть решение для решения этой проблемы.
Любые подсказки приветствуются, спасибо.