Tap-Geste subview Berührung erkennen
i Schublade erschaffe
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;
und wenn die Taste tippen i gerade eingestellt Rahmen von _menuView.view
wie eine Schublade verhalten
, was ich will, ist Berührung zu erkennen außerhalb der Schublade, aber ich kann es nicht tun
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (touch.view == self.menuView.view) {
NSLog(@"Touch Drawer");
} else {
NSLog(@"Touch Outside");
}
return YES;
}
aber es zeigt immer Touch-Outside“
i bin etwas fehlt, aber nicht wissen, was Dank im Voraus
auch mit 2 Geste versuchen, aber nicht arbeiten, weil eine Geste in self.view so, wenn Ich tippe in der Schublade Methode Anruf 2 mal.
für, dass ich versuchte, eine Geste zu deaktivieren, noch ruft zweimal
- (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;
}
Ich versuchte, dass nicht funktioniert, weil ich Geste in self.view so hinzugefügt habe, wenn ich auf Schublade Geste Delegat Methode Feuer 2 Mal tippen –
versuchen, die Methode der Delegierten zu implementieren: - (BOOL) GestenRecognizer: (UIGestureRecognizer *) GestenRecognizer sollteRecognizeSimultanelyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer und einfach NO zurückgeben; –
auch versuchen, das Verfahren zu implementieren: - (BOOL) gestureRecognizerShouldBegin: (UIGestureRecognizer *) GestureRecognizer –