我创造抽屉
self.isShowMenuVC = NO;
_menuView = [MenuViewController viewController];
[self.menuView setDelegate:self];
[self addChildViewController:self.menuView];
[self.menuView.view setFrame:CGRectMake(-kMenuTableWidth, 0, kMenuTableWidth, self.view.frame.size.height)];
[self.view addSubview:self.menuView.view];
[self.menuView didMoveToParentViewController:self];
UITapGestureRecognizer *outsideTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(outsideTapped:)];
[self.view addGestureRecognizer:outsideTap];
outsideTap.delegate = self;
,当按钮自来水我刚才设置的_menuView.view
帧像一个抽屉
我想是来检测触摸外面的抽屉,但我不能这样做
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (touch.view == self.menuView.view) {
NSLog(@"Touch Drawer");
} else {
NSLog(@"Touch Outside");
}
return YES;
}
但它始终显示触摸外”
我思念的东西,但不知道该怎么感谢事先
与2的姿势也可以尝试,但没有工作,因为在self.view一个手势所以,当我点击抽屉方法调用2次。
对于我试图禁用一个手势,仍然调用两次
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (gestureRecognizer == self.touchInDrawer) {
NSLog(@"Touch in drawer");
[self.touchOutSideDrawer setEnabled:NO];
} else {
NSLog(@"Outside");
[self hideMenuView];
}
return YES;
}
我试过不工作,因为我在self.view中添加了手势,所以当我点击抽屉手势委托方法触发2次 –
尝试实现委托的方法: - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeShultaneouslyWithGestureRecognizer :(UIGestureRecognizer *)otherGestureRecognizer 并且仅仅返回NO; –
也尝试实施方法: - (BOOL)gestureRecognizerShouldBegin :(UIGestureRecognizer *)gestureRecognizer –