2013-07-18 6 views
0

У меня есть UIWebView, который отображает длинный фрагмент HTML с несколькими встроенными изображениями, которые завернуты в ссылки. Веб-просмотр можно прокручивать, чтобы доступ к содержимому «ниже складки».Предотвращение прокрутки UIWebView после нажатия ссылки

Когда ссылки подключены, я использую метод webView:shouldStartLoadWithRequest:navigationType:navigationType, чтобы поймать конкретный вызов JavaScript, который затем запускает модальную нагрузку UIViewController поверх веб-представления.

Сразу же, как только ссылка нажимается, номер contentOffset webview сбрасывается до 0,0, поэтому на странице появляется сообщение «прыгать» назад. В идеале я бы хотел, чтобы contentOffset WebView оставался там, где он находится, пока не будет отклонен диспетчер модального просмотра.

Я попытался установить свойство webView.scrollView.scrollEnabled на NO, как только вызывается метод shouldStartLoadWithRequest - это не останавливает прокрутку webView.

Я также попытался сохранить значение contentOffset в точке, где ссылка была нажата, а затем вручную сбросить ее - но это опять же не останавливает прокрутку webView.

Есть ли способ предотвратить эту прокрутку?

ответ

0

Это, как правило, не имеет никакого отношения к UIWebView и является стандартным поведением браузера.

Ссылки в HTML были в форме

<a href="#" onClick="window.open('js-call:image-xx');"> 
    <img src='foo.jpg'> 
</a> 

Проблема была, что я не определил # якорь, чтобы страница была прокрутки назад к вершине, когда Таким образом, изменяя HTML для

<a name="image-xx"> 
<a href="image-xx" onClick="window.open('js-call:image-xx');"> 
    <img src='foo.jpg'> 
</a> 

исправляет проблему.

Смежные вопросы