UIWebView Scrolling - PullRequest
       3

UIWebView Scrolling

2 голосов
/ 30 апреля 2011

Я загружаю HTML-форму в свой UIWebView, и так получается, что мой UIWebView начинается с середины представления и расширяется. Я должен заблокировать этот webView от прокрутки и положить его поверх scrollView, чтобы разрешить прокрутку. WebView не должен прокручиваться внутри. Я пробовал это

 [[webView.subviews objectAtIndex:0] setScrollEnabled:NO];

, но я не могу остановить внутреннюю прокрутку webView, когда загружаю в нее форму с щелчками по текстовым полям, которая вызывает клавиатуру. Когда я загружаю открытый текст, я могу получить желаемое поведение. Я хочу, чтобы веб-просмотр не мог автоматически прокручиваться, и самостоятельно управляю прокруткой, используя scrollView, который находится под веб-обзором. Для большинства из вас может не иметь смысла, что я заново изобретаю колесо, но требование таково.

Кто-нибудь может подсказать, что делать?

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

Можно попробовать,

for (id subview in webView.subviews)

    if ([[subview class] isSubclassOfClass: [UIScrollView class]])

        if([subview respondsToSelector:@selector(setScrollingEnabled:)]) [subview performSelector:@selector(setScrollingEnabled:) withObject:NO];

или вам нужно перестать подпрыгивать на веб-просмотре, попробуйте это.

for (id subview in webView.subviews)
        if ([[subview class] isSubclassOfClass: [UIScrollView class]])
            ((UIScrollView *)subview).bounces = NO;

Надеюсь, это поможет.

0 голосов
/ 30 апреля 2011

Попробуйте выполнить это после загрузки веб-просмотра (т. Е. В правильном методе делегата):

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.overflow='hidden'"]

Если у вас есть доступ к HTML, вы также можете просто установить правильный стиль для элемента body:

body { overflow: hidden; }

Если вы выполните одно из этих действий, вам нужно убедиться, что вы сделали UIWebView достаточно высоким, чтобы отобразить все.Вы можете получить высоту, запустив это (также после загрузки веб-просмотра):

CGFloat height = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...