すべてのタッチ、スワイプなどを処理するビューを作成しました。このビューは常に他のビューの上に表示され、デバイスの画面を覆います。私が望むのは、すべてのイベントを取得し、それらを透明な方法で処理するこのビューです。タッチを検出して処理して下のビューに送信するオーバーレイUIView
私が使用して試した:私は- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
を使用することができ、戻りYES
場合
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
NSSet *tmpTouches = [event allTouches];
if (tmpTouches.count == 1)
NSLog(@"1 tap detected");
else if (tmpTouches.count == 2)
NSLog(@"w tap detected");
else if (tmpTouches.count == 3)
NSLog(@"3 tap detected");
UIView *hitTestView = [super hitTest:point withEvent:event];
if (hitTestView) {
hitTestView = nil;
}
return hitTestView;
}
が、ノータッチはイベント次の方法で
で検出されている...などが、どのように送信しますタッチイベントを次のビューに戻します。リターンNO
ビューは、システムのために透明であるが、私は任意のタッチを取得しない場合は...
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return NO;
}
すべてのヘルプは理解されるであろう!
ビューにジェスチャ認識機能を追加します。 – remyr3my
これは、if(hitTestView){ hitTestView = nil; } return hitTestView; '' return nil; 'と言うのはちょっと遠いですか? –
はい、そうですね。そうだろう:UIView * hitTestView = [super hitTest:point withEvent:event]; if(hitTestView) return hitTestView; return nil; –