2010-05-21 14 views
6

Necesito ajustar el alto y ancho de UIWebView para que todo el texto se muestre dentro de la vista y el usuario no necesita desplazarse para leer el texto.Configuración de ancho y alto UIWebView

¿Alguien tiene alguna idea de cómo conseguirlo?

Respuesta

1

No hay disposiciones especiales en UIWebView para ajustar el tamaño para ajustar el contenido. Puede establecer la propiedad scalesPageToFit en YES para escalar el contenido, o puede hacer que la vista sea lo suficientemente grande como para ajustarse a la mayoría de las páginas de tamaño razonable. De su pregunta deduzco que está mostrando contenido sobre el que tiene el control. Si no, no estoy seguro de que haya una forma programática fácil de lograr lo que quieres.

+0

Thaks a ton por la respuesta! Sí, intentado con la propiedad scalesPageToFit establecida en YES ... pero reduce el contenido demasiado y no es legible ... – aditya

+0

Parece que la categoría UIWebView + SFHFStringMetrics sugerida anteriormente puede ser útil. Invoca algo de Javascript en el documento representado para determinar sus dimensiones. – warrenm

8
webView.scalesPageToFit = YES; 

Consulte también: UIWebView+SFHFStringMetrics

+0

estoy usando UIWebView + SFHFStringMetrics, pero obteniendo el tamaño (0.00,0.00) ¿me puede guiar qué error estoy cometiendo? –

4

espero que esto le apuntan en la dirección correcta.

Al llamar al método stringByEvaluatingJavaScriptFromString: en el UIWebView puede ejecutar JavaScript desde su aplicación en el UIWebView.

// get the height of your content 
[webview stringByEvaluatingJavaScriptFromString:@"document.getElementById('id_of_content_container').offsetHeight;"]; 

// get the width of your content 
[webview stringByEvaluatingJavaScriptFromString:@"document.getElementById('id_of_content_container').offsetHeight;"]; 

El anterior devolverá un objeto NSString con el ancho y la altura de cualquier elemento que se pasa a la función getElementById. Con esa información, debería poder cambiar el tamaño de UIWebView para acomodar su contenido. Un ejemplo:

CGRect frame = webView.frame; 
frame.size.width = 100; 
webView.frame = frame; 

También puede que necesite restablecer scalesPageToFit de nuevo para obtener el contenido de reajustar al nuevo tamaño de la trama.

Otra opción sería detectar window.height y window.width en el lado HTML y usar JavaScript para ajustar el contenido a los aspectos de UIWebView.

+1

la idea no es cambiar el marco de UIWebView ... Digamos que el ancho y alto de UIWebView está establecido en 320 y 440 respectivamente ... ahora la idea es ajustar el contenido html que se muestra en esa vista de 320x440 solo ... . ¿¿¿alguna sugerencia??? – aditya

+0

Al igual que las respuestas han señalado, no creo que pueda hacer esto en el lado de la aplicación. Tendrá que escribir algunos JavaScript en el lado HTML que determina el ancho/alto de la ventana y lo compara con el ancho/alto del contenedor de contenido y lo ajusta en consecuencia. – Intelekshual

Cuestiones relacionadas