内部にいくつかのビューを持つ UIScrollView があります。それをタップすると、タッチがクリーンな領域で発生したのか、サブビューがある領域で発生したのかを理解したいと思います。どうやってやるの?
1 に答える
0
UITapGestureRecognizer の使用時にどの子ビューがタップされたかを検索で解決策を見つけたと思います
したがって、以下を使用してUITapGestureRecognizerを登録した後:
// // Intercept all the taps inside the view
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapDetected:)];
tapRecognizer.numberOfTapsRequired = 1;
tapRecognizer.numberOfTouchesRequired = 1;
tapRecognizer.cancelsTouchesInView = NO;
[self addGestureRecognizer:tapRecognizer];
次のコードを含めるだけで十分です。
- (void)tapDetected:(UITapGestureRecognizer*)recognizer
{
UIView* view = recognizer.view;
CGPoint loc = [recognizer locationInView:view];
UIView* subview = [view hitTest:loc withEvent:nil];
NSLog(@"HIT! in %@",NSStringFromClass([subview class]));
}
于 2012-12-04T17:51:52.777 に答える