3

UIWebView があり、そのタッチを検出したいと考えています。(UITapGstureなどは使いたくない)

この目的のために UIApplication の sendEvent: メソッドを使用しており、タッチ オブジェクトに webview が含まれているかどうかを確認します。

驚いたことに、それは UIWebBrowserView を指しています。ブラウザを取得するにはスーパービューを確認する必要がありますが、ユーザーがタップするたびに sendEvent が呼び出されるため、コードが非常に非効率的になります。

コードスニペット :

- (void)sendEvent:(UIEvent *)イベント {
    [スーパー sendEvent:イベント];

    NSSet *touches = [イベント allTouches];
    if (touches.count != 1)
        戻る;
    UITouch *touch = touches.anyObject

    if([touch.view isKindOfClass:[UIWebView クラス]]){ // これは失敗します

    }
}

UIPdfView や UIWebBrowser ビューのような子ビューを返す代わりに、UITouch が WebView をオブジェクトとして返すようにする方法はありますか?

4

1 に答える 1

3

最後に、これに対する解決策を見つけました:

使用する必要があります:

if([touch.view isMemberOfClass:[UIWebView クラス]]){ // これは動作します

}

それ以外の :

if([touch.view isKindOfClass:[UIWebView クラス]]){ // これは失敗します

}
于 2013-09-25T13:55:25.810 に答える