当用户在 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];
我正在使用 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];