Tengo un UIWebView
que dentro de un UIScrollView
(scrollview contiene otro componente)
Intenté habilitar multitouch tanto en Interface Builder o Programmatic en UIWebView
pero todavía no puedo hacer zoom para html, ¿tengo que manejar tanto el zoom en UIScrollView
y UIWebView
? ¿O algo que no tengo que configurar?
DEBE configurar scalesPageToFit = YES para que cualquier pellizco y zoom funcionen en un UIWebView
Está bien, debe hacer lo anterior, pero también lo siguiente. Tenía una vista web en la vista principal, y eso no funcionó.
<UIScrollViewDelegate>
anteriormente, aplique <UIScrollViewDelegate>
en el controller de vista, arrastre el delegado de vista de desplazamiento al controller de vista en Interface Builder e implemente el método viewForZoomingInScrollView
. Esto debe devolver el puntero al UIScrollView (devolver myScrollView). Debe implementar el método viewForZoomingInScrollView en su controller, o hacer zoom no hará nada. (Realmente no sé por qué esto debería ser necesario, pero ahí tienes).
Para get información detallada, consulte http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html .
Con JavaScript puede controlar el nivel de zoom, aunque la solución de oly que he encontrado no se ve bien.
Di que tienes en <head>
:
<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">
Para acercar a 4x, y aun así permitir que el usuario cambie 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";
Cambiar el ancho es muy importante; de lo contrario, Mobile Safari presenta graves errores de repintado (debido a la sobre optimization).
No puede simplemente establecer initial-scale
nuevamente: se ignora por segunda vez.