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

У меня есть UIView содержащий UIScrollView . Этот UIView должен реагировать на некоторые события касания, но он не отвечает из-за содержащегося в нем scrollView.

Этот контент- contentView установлен в MoviePlayer внутри OuterView. Теперь, когда я нажимаю в области, где находится MoviePlayer, события касания моего OuterView не реагируют.

Я даже установил userInteraction проигрывателя userInteraction NO .

но теперь scrollView мешает.

Я упомянул этот пост о СА.

Как супервизор может перехватить сенсорную последовательность перед любым ее подзоном?

Но решение там, попросит меня установить userInteractionEnabled для NO для scrollView. Но если я это сделаю, мое масштабирование не произойдет!

Что делать?

One Solution collect form web for “Как остановить UIScrollView получать события касания от родительского представления?”

UIScrollView перехватывает все события касания, потому что он должен решить, если / когда пользователь движется пальцем, чтобы прокрутить прокрутку. Вы можете захотеть подклассифицировать UIView, затем в

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)evt; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)evt; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)evt; 

методы, проверьте необходимые касания, затем переместите все эти методы на ваш UIScrollViewInstance. Например:

 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface MyView: UIView { UIScrollView *scrollView; } @end @implementation MyView /* don't forget to alloc init your ScrollView init -init and release it in -dealloc! Then add it as a subview of self. */ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)evt { /* check for a gesture */ [scrollView touchesBegan:touches withEvent:evt]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)evt; { /* check for a gesture */ [scrollView touchesMoved:touches withEvent:evt]; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)evt; { /* check for a gesture */ [scrollView touchesEnded:touches withEvent:evt]; } @end 
  • Как обнаружить все касания в Swift 2
  • Ошибка утверждения в UITableView configureCellForDisplay: forIndexPath:
  • Запустите фоновый поток на Swift 3
  • Анимация изменения ограничения автоматической компоновки на UICollectionView
  • Restkit, Stop Logging?
  • CLLocationmanager: сэкономить аккумулятор
  • Удалять файлы из NSCachesDirectory программно
  • Недействительность NSTimer в dealloc
  • Каталоги копирования iOS, включая подкаталоги
  • UILabels в UIScrollView несовместимы, несмотря на использование CGRectIntegral?
  • Является ли Xcode 5 Asset Catalog обратно совместимым с pre-iOS 7?
  • Важная информация - Senchatouch + Phonegap в AppStore
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.