IOS 5: UIScrollView не передает прикосновения к nextResponder

У меня есть подкласс UIScrollView, и я переопределяю для него все 4 функции Touches. В этих функциях касаний [[self nextResponder] Touches...] и [super Touches...] используются для передачи событий касаний.

Также у меня есть контроллер представления, в котором я также переопределяю все 4 функции касаний. В контроллере я установил self.view как: self.view = subclass of UIScrollview;

До iOS 5, когда есть касания move в scrollview, сенсорные функции контроллера представления могут получать все вызовы касания start / move / end / cancel. Но в iOS 5 они не могут, приходят только один touchesBegan и один touchesMove.

Из журнала кода всегда вызываются сенсорные функции в подклассе UIScrollView.

Кроме того, если я установлю subclass.enableUserInteraction=NO, функция касаний в контроллере представления будет вызываться правильно. Но мне нужно, чтобы scrollview взаимодействовала с пользователем, поэтому я не могу установить для него значение no.

Что я упустил в iOS 5? Заранее спасибо.


person RockLanding    schedule 13.12.2011    source источник


Ответы (2)


Есть очень простой обходной путь :)

Вместо:

[self.nextResponder touchesMoved:touches withEvent:event];

Использовать:

[[self.nextResponder nextResponder] touchesMoved:touches withEvent:event];

Работает также для touchBegan и touchesEnded.

Вот и все! Проблема ушла! Теперь события касаний передаются следующему респонденту :)

person Emmanuel Mouille    schedule 11.09.2012