2

UIView とタップ ジェスチャ レコグナイザがあります。

UIImageView *tabView = [[UIImageView alloc] initWithFrame:CGRectMake(41, 145, 702, 100)];
tabView.image = [UIImage imageNamed:@"inactive_tab"];
tabView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
                                        action:@selector(handleSingleTap:)];
[tabView addGestureRecognizer:singleFingerTap];
[self.scrollView addSubview:tabView];

そして、スクロールビューに別のビューを追加します:

[self.scrollView addSubview:self.activeTab];

activeTab は inactiveTap の上にあります。activeTap をタップすると、ジェスチャ認識エンジンが起動します。どうすればこれを回避できますか?

4

1 に答える 1

9

使用UIGestureRecognizerDelegateとその方法gestureRecognizer:shouldReceiveTouch:。タッチポイントがビューフレーム内にあるかどうかを確認し、そのビューNOでタッチを発生させたくない場合は戻ることができます。`

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    CGPoint touchLocation = [touch locationInView:self.view];
    return !CGRectContainsPoint(self.activeTab.frame, touchLocation);
}
于 2013-03-06T10:33:18.723 に答える