UISwipeGestureRecognizerDirectionRight不在使用iOS 5.1的DetailViewController.m中工作

mar*_*eli 2 ipad uisplitviewcontroller ios uiswipegesturerecognizer ios5.1

这是我的第一个问题,但是我在过去几个月里使用过这个网站(感谢所有人).

我的问题:我有一个i-Pad的拆分视图项目.在DetailViewController中,我使用了一个UIButton.这是DetailViewController.h中的一些代码:

@property (strong, nonatomic) IBOutlet UIButton *button;
- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer;
Run Code Online (Sandbox Code Playgroud)

DetailViewController.m中我只是这样做:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRightDetected:)];
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    [self.button addGestureRecognizer:swipeRight];
}

- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer
{

    if (recognizer.view == self.button) {
    NSLog(@"YEAH");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在问题是:它与iOS 5.0.1和之前的版本完美配合.现在它不再起作用了.它适用于任何其他方向,但不适用于正确的方向,仅适用于DetailViewController !! 只有当你用力量和速度击中iPad时才会起作用(就像一记耳光!),同样适用于模拟器......只有你非常快速地进行滑动才有效!

我认为这是一个错误......我该怎么办?也许在苹果论坛上发布相同的问题?谢谢大家,你们都很棒!! 马尔科

omz*_*omz 7

我猜这与iOS 5.1中拆分视图控制器的新"滑动演示风格"有关.该发行说明说,你可以通过设置禁用此行为presentsWithGestureNO.

另一个选择可能是gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:在您的手势识别器的委托中实现.