2

在我的 viewDidLoad 我设置

UISwipeGestureRecognizer *swipeRecognizerU = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpDetected:)]; swipeRecognizerU.direction = UISwipeGestureRecognizerDirectionUp; [self.view addGestureRecognizer:swipeRecognizerU];

当我通过弹出窗口加载新视图时,我需要禁用该手势

// show popup view
-(IBAction)showPopup:(id)sender
{
    MJDetailViewController *detailViewController = [[MJDetailViewController alloc] initWithNibName:@"MJDetailViewController" bundle:nil];
    [self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationSlideBottomBottom];
}

弹出视图被关闭后,我需要重新设置滑动手势。

// hide popup view
-(IBAction)hidePopup:(id)sender
{
    [self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationSlideBottomBottom];
}

如何做到这一点?

4

2 回答 2

6

我认为有一个名为 enabled 的属性UIGestureRecognizer。你有没有试过这个,禁用你的滑动应该没问题:

swipeGestureRecognizer.enabled = NO;
于 2012-07-07T15:53:09.533 回答
1

你需要在这里设置委托。

前任 :

swipeleft=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeleft:)];
        swipeleft.direction=UISwipeGestureRecognizerDirectionLeft;
        swipeleft.delegate = self;
        [self.view addGestureRecognizer:swipeleft];

然后添加功能

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {


    if ((touch.view == test[1]) || (touch.view == test[2]) || (touch.view == test[3])) {

        [gestureRecognizer setCancelsTouchesInView:YES];
        [swipeleft setCancelsTouchesInView:YES];

        [gestureRecognizer setEnabled:NO];
        [swipeleft setEnabled:NO];



        return NO;

    }
    else
    {
        [gestureRecognizer setCancelsTouchesInView:NO];
        [swipeleft setCancelsTouchesInView:NO];

        [gestureRecognizer setEnabled:YES];
        [swipeleft setEnabled:YES];

    return YES;
    }
}

我觉得对你有用

于 2014-05-22T20:36:06.220 回答