У меня есть ViewController с UIWebView в проекте Objective-c для iPad.
Когда я добавляю html (с loadHtmlString), я пытаюсь сохранить позицию прокрутки, которая была до loadHtml, но я не могу помочь, и она возвращается наверх.
Вот строки, которые я использую:
scrollPosition = [[webView stringByEvaluatingJavaScriptFromString: @"scrollY"] intValue];
[webView loadHTMLString:html baseURL:nil];
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0, %d);",scrollPosition]];
Я проверил значение scrollY в разных местах моего кода
и он остается на значении scrollPosition, которое я хочу, но когда он в конечном итоге отображается на экране, WebView всегда вверху (со значением scrollY затем 0).
Есть ли кто-нибудь, кто мог бы помочь мне понять, почему это происходит?
Я часами проверял ответы онлайн, в том числе и в StackOverflow.
Я пробовал разные решения (например, добавление в моем веб-просмотре JavaScript "onclick =" scroll (); return false; ", но безрезультатно.
Я попытался самостоятельно делегировать webView и обновить scrollTo в webViewDidFinishLoad, но кажется, что webViewDidFinishLoad не вызывается (точка останова не достигнута), хотя я добавил в .h в интерфейсе и в .m в ViewDidLoad строку: webView.delegate = я;
Заранее благодарю за любую помощь.