2012-08-16 63 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