私のシナリオでは、メインビューに多くのサブビューがあり、各サブビューをタップすると異なる結果が生成されるはずです。UITapGestureRecognizerはサブビューで呼び出されませんか?
私のアプローチは、メインビューが1つのタップレコグナイザを持ち、ユーザがタップしたサブビューの領域を計算するのではなく、独自のタップレコグナイザを実装することです。 ?
私はこのアプローチを試みましたが、うまくいかないようです。タップメソッドは決して呼び出されません。私はstackoverflowに関する記事をたくさん読んだが、彼らは役に立たなかった。
たとえば、サブビューはイメージビューではありませんが、私は手作業でそのuserInteractionEnabled
プロパティをYES
に手動で設定しました。しかし、それは役に立たなかった。以下
サブビューの主なコードである:
- (void) handleOneTap:(UITapGestureRecognizer*)paramSender{
// *** Never gets called
NSUInteger touchCounter = 0; for (touchCounter = 0;
touchCounter < paramSender.numberOfTouchesRequired;
touchCounter++){
CGPoint touchPoint = [paramSender locationOfTouch:touchCounter
inView:paramSender.view];
NSLog(@"Touch #%lu: %@",
(unsigned long)touchCounter+1, NSStringFromCGPoint(touchPoint));
}
}
- (void)viewDidLoad {
[super viewDidLoad];
_container = [[UIView alloc] initWithFrame:CGRectMake(20, 50, 280, 300)];
[self.view addSubview:_container];
_container.backgroundColor = [UIColor redColor];
_container.opaque = YES;
// setup tap recognizer
self.tapGestureRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleOneTap:)];
self.tapGestureRecognizer.numberOfTouchesRequired = 1;
self.tapGestureRecognizer.numberOfTapsRequired = 1;
self.view.userInteractionEnabled = YES;
self.container.userInteractionEnabled = YES;
[self.view addGestureRecognizer:self.tapGestureRecognizer];
}
任意の助けが理解されるであろう。
解決する必要があります://www.dropboxを。 com/s/9qk892k7hbil2ub /%20Tap%20Gestures.zip?dl = 0を検出しています。もし誰かが一見することができればそれは大いに感謝されるだろう。 –