2010-03-07 3 views
14

Я пытался отключить его, вставляя:Как отключить горизонтальную прокрутку UIWebview?

<meta name="viewport" content="width=320" /> 

в моей HTML строку и десяток вариаций выше в тщетной надежде, что я просто завинчивающейся синтаксис тега ... но ничего, кажется, чтобы остановить UIWebView прокручивается по горизонтали. И все-таки есть приложения, которые это делают (например, MobileRSS), и, предположительно, поскольку они не были отклонены, они не используют частные API.

ответ

1

<meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1.0" />

8

я в конце концов удалось решить эту проблему. Я уже пытался установить значение ширины видового экрана, и это не сработало. В работе DID используется переполнение: скрыто в сочетании с настройкой ширины окна просмотра. Спасибо, что ответили.

4

Ваша веб-страница должна иметь два атрибута: 1 - метатег viewport и 2 - ширину 320 пикселей или меньше, включая маржу и отступ.

Вот очень простой скелет 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> 
1

Установите делегат для UIWebview «s UIScrollview (на iOS5 по webview.scrollView и на iOS4 путем обхода дерева подвид и выбрать UIScrollview подвид), чтобы„я“и использовать следующий код:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    [scrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y)]; 
} 

Работает отлично, по какой-то причине мой HTML-код был переполнен горизонтально, без необходимости. Это исправить.

+1

Я бы не сказал, что это исправляет это; больше похож на хак. Но эй! если он выполняет работу, кого это волнует? (Это не исправляет, потому что ваш контент все еще переполнен) –

29

Моя версия, общее решение:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)]; 

} 
+3

Важно, чтобы этот код был помещен в -webViewDidFinishLoad: не где-то еще (как я его положил в viewDidLoad и некоторое время стучал головой о стену) – igrek

+0

Большое спасибо, это помогло решить мою проблему .. :) – NorthBlast

3

если содержание WebView слово, которое имеет длину больше, чем WebView. вам нужно сломать эту строку. поэтому используйте приведенный ниже код в div

word-wrap: break-word;

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