¿Cómo puedo habilitar el zoom en UIWebView que está dentro de UIScrollView?

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ó.

  1. Como se mencionó anteriormente, primero debe colocar UIScrollView en la vista principal, luego colocar la vista web en la vista de desplazamiento.
  2. Como se <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).
  3. Creé las properties de IBOutlet tanto para la vista web como para la vista de desplazamiento: vinculalas en la NIB con el controller de vista.
  4. En la Vista de desplazamiento, vaya al Inspector de Atributos, configure los factores de zoom Máx y Min (ajuste 0,5 a 5,0, que funciona bien).
  5. En la vista web, en el Inspector de attributes:
  6. En la sección Vista web, select Escalar páginas para ajustarlas.
  7. En la sección Ver, select Modo, "Arriba a la izquierda"
  8. En la sección Ver en la parte inferior, marque Interacción de usuario habilitada y habilitado para múltiples pulsaciones.

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.