【发布时间】:2016-09-13 09:41:16
【问题描述】:
我正在创建抽屉
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;
}
但它总是显示 Touch Outside"
我错过了一些东西,但不知道是什么提前谢谢
还尝试使用 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;
}
【问题讨论】:
标签: ios objective-c uitapgesturerecognizer