2012-08-16 72 views
1

我有一個UIView子類,而我已經添加了一個UIPanGestureRocognizer:UIPanGestureRecognizer不會向右平移

_panGestureRecognizer = [[UIPanGestureRecognizer alloc] 
         initWithTarget:self action:@selector(handlePanGesture:)]; 
_panGestureRecognizer.maximumNumberOfTouches = 1; 
_panGestureRecognizer.delegate = self; 
[self addGestureRecognizer:_panGestureRecognizer]; 

這種觀點是在視圖層次,其包括UISplitViewController作爲頂層視圖/控制器使用。

當以橫向方式在iPad模擬器中測試此功能時,如果通過向上/向下/向左啓動平移,我的handlePanGesture:方法將按預期方式調用。但是,如果我通過正確開始泛,那麼我的handlePanGesture:方法是而不是調用。爲什麼不?

回答

4

雖然我寫了這個問題,我想出答案我自己:

的UISplitViewController以來的iOS 5將,默認情況下,識別輕掃手勢向右並顯示酥料餅的控制器。這在縱向方向上很明顯,但是在橫向方向上,手勢沒有明顯效果,因爲縱向顯示的左側視圖始終顯示在橫向中。

的解決方法是禁用滑動手勢的UISplitViewController有:

splitViewController.presentsWithGesture = NO; 

我不知道是否有辦法有兩種姿勢工作。

+0

如果您需要保留滑動手勢功能,您還可以使用'recognizerSimultaneousGesture'功能。 – 2012-08-16 13:25:02

+0

如果你在'UIGestureRecognizerDelegate'中引用'gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:',我試着實現它,只是爲所有輸入返回YES,但它沒有效果。 – dOxxx 2012-08-16 14:02:45

+0

您可能還需要添加一些邏輯來確定是否返回YES。但是,這就是我所指的只是你沒有意識到的事情。 – 2012-08-16 14:27:48

相關問題