1

iOSアプリに一種の「ヘルプモード」を実装しようとしています。ユーザーがヘルプボタンをタップすると、画面へのタッチがUITapGestureRecognizerによってインターセプトされ、コントロール上にある場合は、ヘルプ情報を含む小さなポップアップが表示されます。

ただし、私の問題は、コントロールの上半分をタップした場合にのみ、アプリケーションがコントロールをタップしたことを検出することです。hitTest:withEvent:を使用して、タッチされたビューを判別します。

CGPoint touchPoint = [(UITapGestureRecognizer*)sender locationInView:nil];
UIView* touchedView = [self.view hitTest:touchPoint withEvent:nil];

UILabelsは特にうまくヒットするのが難しいです。

ビューの上部にはナビゲーションバーがありますが、かなり標準的です。誰かが同様の問題を抱えていましたか?誰かが解決策を知っていますか?

4

1 に答える 1

2

ウィンドウではなく、ビュー内のタッチの位置を取得する必要があります(これは、ビューとして指定したときに取得されるものですnil)。

CGPoint touchPoint = [(UITapGestureRecognizer*)sender locationInView:self.view];
UIView* touchedView = [self.view hitTest:touchPoint withEvent:nil];
于 2012-04-13T05:52:28.657 に答える