私はアプリケーション全体で発生するアクティビティ(つまり接触)を傍受しようとしています。UIViewの-hitTest:withEvent:3回呼び出されましたか?
つまり、残りのコントロールを含む、メインUIView内で発生するタッチイベントの通知を受けようとしています。 これを行うには、UIViewのメソッド-hitTest:withEvent:が良い解決策であると思っていました。
しかし、[super hitTest:... withEvent:...]を呼び出す前にこのオーバーライドされたメソッドにNSLogを書き込むと、私はそれを3回呼び出していることがわかります。それが呼び出されるたびに私が受け取るイベントです。ここで
は自分のアプリケーションのメインビューでメソッドを実装する方法である:どのように私でし
2010-11-29 14:09:26.892 Application[68818:207] hitTest:withEvent called :
2010-11-29 14:09:26.892 Application[68818:207] Event: <UITouchesEvent: 0x5716d60> timestamp: 37935.2 touches: {(
)}
2010-11-29 14:09:26.892 Application[68818:207] Point: {173, 498}
2010-11-29 14:09:26.892 Application[68818:207] Event Type: 0
2010-11-29 14:09:26.892 Application[68818:207] Event SubType: 0
2010-11-29 14:09:26.893 Application[68818:207] ---
2010-11-29 14:09:26.893 Application[68818:207] hitTest:withEvent called :
2010-11-29 14:09:26.893 Application[68818:207] Event: <UITouchesEvent: 0x5716d60> timestamp: 37935.2 touches: {(
)}
2010-11-29 14:09:26.893 Application[68818:207] Point: {173, 498}
2010-11-29 14:09:26.893 Application[68818:207] Event Type: 0
2010-11-29 14:09:26.893 Application[68818:207] Event SubType: 0
2010-11-29 14:09:26.893 Application[68818:207] ---
2010-11-29 14:09:26.893 Application[68818:207] hitTest:withEvent called :
2010-11-29 14:09:26.894 Application[68818:207] Event: <UITouchesEvent: 0x5716d60> timestamp: 37944.9 touches: {(
)}
2010-11-29 14:09:26.894 Application[68818:207] Point: {173, 498}
2010-11-29 14:09:26.894 Application[68818:207] Event Type: 0
2010-11-29 14:09:26.894 Application[68818:207] Event SubType: 0
2010-11-29 14:09:26.894 Application[68818:207] ---
:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
NSLog(@"hitTest:withEvent called :");
NSLog(@"Event: %@", event);
NSLog(@"Point: %@", NSStringFromCGPoint(point));
NSLog(@"Event Type: %d", event.type);
NSLog(@"Event SubType: %d", event.subtype);
NSLog(@"---");
return [super hitTest:point withEvent:event];
}
そして、ここではどのような私は、このビューでは、単一のタッチのためのNSLogですワンタッチで1回だけ実行したいアクションをトリガするために、これらの3つの通知の間に違いがありますか?
ありがとうございます!
ここまできれいな解決策が見つかりましたか?私は同じ問題を抱えている。勤怠集計はうまくいくと思われますが、将来はSDKの変更が容易に起きる可能性があります。 –
これはなぜ起こるのでしょうか?私は自分自身でこれを理解しようとしています – prostock
この問題について進歩はありますか? –