2010-03-07 22 views
14

He intentado desactivar mediante la inserción:Cómo deshabilitar el desplazamiento horizontal de UIWebview?

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

en mi cadena HTML, y una docena de variaciones de lo anterior en la vana esperanza de que acabo de la pata de la sintaxis de la etiqueta ... pero nada parece detener UIWebView se desplaza horizontalmente. Y, sin embargo, hay aplicaciones que logran hacer esto (como MobileRSS), y presumiblemente, dado que no han sido rechazadas, no están utilizando API privadas.

Respuesta

1

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

8

finalmente me las arreglé para resolver esto. Ya había intentado configurar el valor del ancho de la ventana gráfica y no funcionó. Lo que hizo el trabajo DID fue usar desbordamiento: oculto junto con establecer el ancho de la ventana gráfica. Gracias por responder de todos modos.

4

Su página web debe tener dos atributos: 1: la metaetiqueta de la vista y 2-- un ancho de 320px o menos, incluidos el margen y el relleno.

Aquí hay un esqueleto de HTML5 muy simple que debería permitir el desplazamiento vertical y no permitir el desplazamiento horizontal, lo que incluye no permitir el rebote horizontal. Esto tampoco permite el uso del zoom: asume que su página web siempre se debe mostrar 1-1 al usuario. Esto es útil si está usando un UIWebView para mostrar una interfaz de usuario.

<!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

Establecer el delegado para la UIWebview 's UIScrollview (en IOS5 por webview.scrollView y en iOS4 por la que atraviesa el árbol subvista y seleccionando la subvista UIScrollview) a 'auto' y use el siguiente código:

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

Funciona perfectamente, por alguna razón mi código HTML se desbordó horizontalmente sin necesidad de hacerlo. Esto lo arregla

+1

No diría que esto lo soluciona; es más como un truco. ¡Pero hey! si hace el trabajo, ¿a quién le importa? (No lo arregla porque su contenido todavía está desbordado) –

29

Mi versión, una solución común:

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

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

} 
+3

Es importante que este código se coloque en el -webViewDidFinishLoad: no en otro lugar (como lo puse en viewDidLoad y estaba golpeando mi cabeza contra la pared por un tiempo) – igrek

+0

Muchas gracias, esto ayudó a resolver mi problema ... :) – NorthBlast

3

si el contenido web View una palabra que tiene una longitud mayor que la web View. tienes que romper esa cuerda. a fin de utilizar el código a continuación en el div

word-wrap: break-word;

Cuestiones relacionadas