UIPanGestureRecognizer不会正确

时间:2012-08-16 13:09:32

标签: ios uipangesturerecognizer

我有一个UIView子类,我添加了一个UIPanGestureRocognizer:

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

此视图用于视图层次结构,其中包含UISplitViewController作为顶级视图/控制器。

在横向测试iPad模拟器中测试时,如果我通过上/下/左开始平移,我的handlePanGesture:方法将按预期调用。但是,如果我通过 right 启动平移,那么我的handlePanGesture:方法被调用。为什么不呢?

1 个答案:

答案 0 :(得分:4)

当我写这个问题的时候,我找到了自己的答案:

默认情况下,自iOS 5起的UISplitViewController将识别右侧的滑动手势并显示弹出控制器。这在纵向方向上很明显,但是在横向方向上,手势没有明显效果,因为显示为纵向中的弹出框的左侧视图始终以横向显示。

解决方法是使用以下命令禁用UISplitViewController的滑动手势:

splitViewController.presentsWithGesture = NO;

我不知道是否有办法让两种手势都有效。