1

iPad アプリで、VGA ケーブルを介してアプリの画面をセカンダリ画面にミラーリングしようとしています。パフォーマンスの問題により、ビューをセカンダリ スクリーンに表示するだけで、iPad のスクリーンを介してタッチ イベントをキャプチャしたいです。

私の現在の方法は、2 つの UIWindows を使用することです。1 つはすべてのビュー、アニメーションなどを表示する VGA 接続画面用で、もう 1 つはタッチ イベントをキャプチャする iPad 画面用の UIWindow です。これはパフォーマンス面で優れており、iPad の画面で受信したタッチ イベントをログに記録できます。

しかし、何らかの理由でtouchesBegan:touchesEnded:などのメソッドを my に渡して、UIViewControllers正しく反応させることができません。に直接送信するとUIViewController、 のタッチ イベントをオーバーライドすることでそれらをキャプチャできますが、UIViewControllerこれは、 に追加されたボタンなどではなく、背景でのタッチのキャプチャにのみ役立ちますUIViewController

次に、タッチイベントを送信してみましたが、viewController.view別の場所に消えてしまいました。ビューコントローラーの各サブビューをループしてみましたが、サイコロはまだありません。

簡単なものが欠けているに違いありません。何かアイデアはありますか?

4

1 に答える 1

2

私もこの問題を抱えていました。あなたの問題は非常に簡単に解決できます。次のように、UIView の hitTest メソッドを上書きするだけです。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent*)event
{
  return [[[[UIApplication sharedApplication] delegate] secondWindow] hitTest:point withEvent:event];
}

タッチイベントを他のビューに渡すことができます。私の問題はあなたの問題より難しいです。イベントを「渡す」だけでなく、「コピー」したい。これを行う方法を知っている人はいますか?

于 2010-11-26T03:39:54.460 に答える