2011-12-13 36 views
3

我有一個UIScrollView的子類,並覆蓋它的所有4個觸摸功能。在這些觸摸功能中,使用 和[[self nextResponder] Touches...][super Touches...]來傳遞觸摸事件。IOS 5:UIScrollView不通過觸摸到下一個響應器

此外,我有一個視圖控制器,我也覆蓋了所有4觸摸功能。在控制器中,我將self.view設置爲:self.view = subclass of UIScrollview;

在iOS 5之前,當觸摸在scrollview上移動時,視圖控制器的觸摸功能可以接收所有觸摸開始/移動/結束/取消調用。但在iOS 5中,他們不能,只收到一個touchesBegan和一個touchesMove

從代碼的日誌中,總是調用UIScrollView的子類中的觸摸功能。

此外,如果我設置subclass.enableUserInteraction=NO,視圖控制器中的觸摸功能將被調用。但我需要scrollview與用戶進行交互,所以我不能將它設置爲no。

iOS 5中有什麼不同嗎?先謝謝你。

回答

1

看起來像一個iOS 5的錯誤。看到這個SO職位:

touchesMoved not firing in iOS5 for the iPhone for UIScrollView

「由於之前我記錄與蘋果的缺陷提到,他們終於回來給我,我引述如下:「經過進一步調查,已經確定這是一個已知的問題目前正在進行工程調查。「他們給出了原始的錯誤ID#10213937。他們感謝提交的bug,但不提供任何變通辦法。'」

仍然不知道如何解決iOS 5的不幸。

5

有一個很簡單的解決辦法:)

相反的:

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

用途:

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

作品也爲觸摸esBegan & touchesEnded。

就是這樣!問題消失了!現在觸摸事件傳遞給下一個響應者:)