Ответ 1
Моя версия, общее решение:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)];
}
Я попытался отключить его, вставив:
<meta name="viewport" content="width=320" />
в мою строку HTML и десяток вариаций вышеизложенного в тщетной надежде, что я просто испортил синтаксис тегов... но ничто не останавливает прокрутку UIWebView по горизонтали. И все-таки есть приложения, которые это делают (например, MobileRSS), и, по-видимому, поскольку они не получили отказ, они не используют частные API.
Моя версия, общее решение:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)];
}
В конечном итоге мне удалось это решить. Я уже пытался установить значение ширины видового экрана, и это не сработало. В работе DID используется переполнение: скрыто в сочетании с настройкой ширины окна просмотра. Спасибо, что ответили.
Ваша веб-страница должна иметь два атрибута: 1 - метатег viewport и 2 - ширину 320 пикселей или меньше, включая margin и padding.
Вот очень простой скелет HTML5, который должен позволить вертикальную прокрутку и запретить горизонтальную прокрутку, включая запрет горизонтального подпрыгивания. Это также запрещает масштабирование - предполагается, что ваша веб-страница всегда должна отображаться пользователем 1-1. Это полезно, если вы используете UIWebView для отображения пользовательского интерфейса.
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" />
<style>
body {width:320px;margin:0;padding:0;}
</style>
</head>
<body></body>
</html>
если содержимое webView содержит слово, длина которого больше, чем webView. вам нужно сломать эту строку. поэтому используйте приведенный ниже код в div
word-wrap: break-word;
<meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1.0" />
Установите делегат для UIWebview
UIScrollview
(на iOS5 на webview.scrollView
и на iOS4, пройдя дерево подзаголовка и выбрав подтекст UIScrollview
) для "self" и используйте следующий код:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
[scrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y)];
}
Прекрасно работает, по какой-то причине мой HTML-код переполнялся горизонтально, без необходимости. Это исправить.