objective c - open - ¿Cómo puedo activar el zoom en UIWebView que dentro de UIScrollView?
webkit view vs webview (4)
Con JavaScript puede controlar el nivel de zoom, aunque la solución original que he encontrado no se ve sin problemas.
Digamos que tienes en <head>
:
<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">
Para acercar a 4x y aún permitir al usuario cambiar el zoom, cambie el contenido dos veces:
var vp = document.getElementById(''vp'');
vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes";
vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";
Alternar el ancho es muy importante; de lo contrario, Mobile Safari tiene graves errores de repintado (debido a la optimización excesiva).
No puede simplemente establecer initial-scale
nuevo; se ignora por segunda vez.
Tengo un UIWebView
que dentro de UIScrollView
(scrollview contiene otro componente)
Intenté habilitar Multitouch tanto en Interface Builder como en Programmatic en UIWebView
pero todavía no se puede hacer zoom para html. ¿Debo manejar ambos zoom en UIScrollView
y UIWebView
? ¿O algo que no tenga que establecer?
DEBE establecer scalesPageToFit = YES para que cualquier pellizco y acercamiento funcione en una UIWebView
De acuerdo, debe hacer lo anterior, pero también lo siguiente. Tenía una vista web en la vista principal, y eso no funcionó.
- Como se indicó anteriormente, primero debe colocar UIScrollView en la vista principal y luego colocar la vista web en la vista de desplazamiento.
- Como se
<UIScrollViewDelegate>
anteriormente, implemente<UIScrollViewDelegate>
en su controlador de vista, arrastre el delegado de la vista de desplazamiento al controlador de vista en el Creador de interfaz e implemente el métodoviewForZoomingInScrollView
. Esto debe devolver el puntero a UIScrollView (return myScrollView). - Creé las propiedades de IBOutlet tanto para la vista web como para la vista de desplazamiento: vincúlelas en el NIB a su controlador de visualización.
- En la vista de desplazamiento, vaya al inspector de atributos, establezca sus factores de zoom máximo y mínimo (configuro 0.5 a 5.0, que funciona bien).
- En la Vista web, en el Inspector de atributos:
- En la sección Vista web, seleccione Escalas de páginas para ajustar
- En la sección Ver, selecciona Modo, "Arriba a la izquierda"
- En la sección Ver en la parte inferior, marque Interacción del usuario habilitada y Múltiple toque habilitado
Debe implementar el método viewForZoomingInScrollView en su controlador, o el zoom no hará nada. (Realmente no sé por qué esto debería ser necesario, pero ahí lo tienes).
Para obtener información detallada, consulte http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html .