3

我有一个 UIWebView,我想检测它的任何触摸。(我不想使用 UITapGsture 或任何其他东西)

为此,我正在使用 UIApplication 的 sendEvent: 方法并检查触摸对象是否包含 webview。

令人惊讶的是它指向 UIWebBrowserView。我必须检查它的超级视图才能获取浏览器,但这使我的代码效率非常低,因为每次用户点击时都会调用 sendEvent。

代码片段:

- (void)sendEvent:(UIEvent *)event {
    [超级发送事件:事件];

    NSSet *touches = [事件 allTouches];
    如果 (touches.count != 1)
        返回;
    UITouch *touch = touches.anyObject

    if([touch.view isKindOfClass:[UIWebView class]]){ // 失败

    }
}

我想知道有没有办法让 UITouch 返回 WebView 作为一个对象,而不是返回它的子视图,如 UIPdfView 或 UIWebBrowser 视图?

4

1 回答 1

3

最后我找到了解决方案:

我们必须使用:

if([touch.view isMemberOfClass:[UIWebView class]]){ // 这有效

}

代替 :

if([touch.view isKindOfClass:[UIWebView class]]){ // 失败

}
于 2013-09-25T13:55:25.810 回答