Я предполагаю, что причина в том, что прокрутка остается в том же положении пикселя, а не пропорционально высоте страницы. Таким образом, когда пользователь имеет устройство в альбомной ориентации, ширина страницы увеличивается, а высота страницы уменьшается.
Возможно, вы захотите использовать JavaScript для пропорциональной прокрутки страницы при изменении ориентации, т.е. используйте [webView stringByEvaluatingJavaScriptFromString:]
. Вот псевдокод:
Непосредственно перед изменением ориентации:
- int oldVerticalPosition = положение вертикальной прокрутки в верхней части страницы
- int olePageHeight = высота всей страницы
После изменения ориентации:
- newPageHeight = высота всей страницы
- Прокрутка страницы до newPageHeight * (oldVerticalPosition / oldPageHeight)
На этой странице приведен пример кода.