当用户在 frontView 时,SWRevealViewController 停止点击手势

SWRevealViewController stop tap gesture when user is in frontView

我正在使用 SWRevealViewController 滑动菜单。我使用以下方法在前视图中添加了点击手势:

SWRevealViewController *revealController = [self revealViewController];

[revealController tapGestureRecognizer];

我的点击手势有效。但问题是我的前视图有按钮,需要点击才能导航到其他屏幕。有没有办法在启用 frontView 时禁用点击手势并在按下菜单时启用点击手势?

我想你试过这个

在您的 class

上创建委托
@interface xxxViewController () <SWRevealViewControllerDelegate>

委托方法为

  - (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
    if (position == FrontViewPositionLeftSide) {
        self.tapGestureRecognizer.enabled = YES;
        // disable your current class action

    }
    else if (position == FrontViewPositionLeft){
        self.tapGestureRecognizer.enabled = NO;
        // enable your current class action


    }
}

Import SWRevealViewController.h 在滑出菜单中 class。然后在你的滑动菜单 viewWillAppear 方法中放置这一行 -

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];

   self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=false;

}

并在 viewWillDisappear 方法中放入此行-

-(void) viewWillDisappear:(BOOL)animated
{

self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=true;

}

在前视图控制器中添加此

SWRevealViewController *objRevealViewController = [self revealViewController];
[self.view addGestureRecognizer:objRevealViewController.tapGestureRecognizer];