Одна из причин, по которой это может произойти, это то, что вы ссылаетесь на изображения в разметке, не объявляя их размеры явно. Ваши изображения, вероятно, не закончили загружаться, когда вызывается webViewDidFinishLoad :. Браузер выкладывает страницу изначально, используя некоторый предполагаемый размер изображения. Как только изображение загружено и браузер может определить его реальные размеры, он будет переформатировать страницу, что может привести к увеличению общей высоты страницы. Если ваш вызов window.scrollTo происходит до этого перекомпоновки, возможно, вы пытаетесь прокрутить до конца документа.
Если это то, что происходит в вашем случае, вы можете решить эту проблему, объявив размеры ваших тегов img явно в вашей разметке или CSS.
Если по какой-то причине вы не можете предсказать размеры изображения заранее, вы можете отложить вызов window.scrollTo до окончания загрузки изображений, зарегистрировав обработчик события javascript для window.onload, который не срабатывает до все изображения закончили загрузку. В обработчике событий перейдите к вашему window.location.href по некоторому поддельному URL-адресу, например «app: imagesFinishedLoading». В вашем UIWebViewDelegate вы можете реализовать webView: shouldStartLoadWithRequest: navigationType: чтобы перехватить эту навигацию, отменить ее, а затем сделать вызов window.scrollTo.