Как полностью отключить увеличительное стекло для UIWebView iOS9

Я пробовал следующее:

html, body, div, p, a, table, img
{
-webkit-user-select: none !important;
user-select: none !important;
-webkit-user-callout: none !important;
-webkit-touch-callout: none !important;
}

Это работает для моего uiwebview, который занимает весь экран, но для моего uiwebview, который не работает (adbannerview выше), он подталкивает увеличительное стекло над uiwebview над adbannerview.

Есть ли у кого-нибудь идеи, которые не связаны с отключением UILongPressGestureRecognizers на subviews uiwebview, как это предложено в этом ?

Ответы

Ответ 1

Мне удалось получить предложенные комментарии, работая, чтобы гарантировать, что жесты отключены после каждой загрузки страницы.

Итак, у вашего делегата webview:

func webViewDidFinishLoad(webView: UIWebView) {
    disableLongPressGesturesForView(webView)
}

Затем ваша функция может просматривать каждое подземелье веб-просмотра (и его дочерние элементы) и отключать любые длинные жесты.

func disableLongPressGesturesForView(view: UIView) {
    for subview in view.subviews {
        if let gestures = subview.gestureRecognizers as [UIGestureRecognizer]! {
            for gesture in gestures {
                if gesture is UILongPressGestureRecognizer {
                    gesture.enabled = false
                }
            }
        }
        disableLongPressGesturesForView(subview)
    }
}

Ответ 2

Я отключил увеличительное стекло, выполнив итерацию подзонов с веб-просмотра и выбрав, где UILongPressGestureRegonizer отключил его.

Вот фрагмент:

- (void)disableWebViewLongPressGestures:(UIWebView *)webview {
    for(id subView in webview.subviews) {
        if([subView isKindOfClass:[UIScrollView class]]) {
            UIScrollView *scrollView = (UIScrollView *)subView;
            for(id ssView in scrollView.subviews) {
                if([NSStringFromClass([ssView class]) isEqualToString:@"UIWebBrowserView"]) {
                    for(UIGestureRecognizer *gs in [ssView gestureRecognizers]) {
                        if ([gs isKindOfClass:[UILongPressGestureRecognizer class]])
                        {
                            gs.enabled = NO;
                        }
                    }
                }
            }
        }
    }
}