Вот простое решение, которое я протестировал, и оно работает:
Добавьте следующее в viewDidLoad, чтобы добавить scrollView поверх нашего веб-вида:
self.scrollView = [[UIScrollView alloc] init];
self.scrollView.delegate = self;
[self.webView addSubview:self.scrollView];
Когда страница загружается, мы настраиваем фрейм и размер содержимого scrollView
-(void) webViewDidFinishLoad:(UIWebView *)webView {
self.scrollView.frame = webView.bounds;
self.scrollView.contentSize = webView.scrollView.contentSize;
}
Теперь вы можете изменить смещение веб-представления view.scrollView, установив self.webView.scrollView.contentOffset для любого CGPoint, который вы хотите программно.
Помните, что при этом сенсорные события больше не передаются в веб-просмотр. Если вы хотите, чтобы веб-представление по-прежнему реагировало на перетаскивание пользователя, также выполните следующие действия:
#pragma mark UIScrollView Delegate
-(void) scrollViewDidScroll:(UIScrollView *)scrollView {
self.webView.scrollView.contentOffset = scrollView.contentOffset;
}