Esta lógica para hacer zoom de UIWebView, no es necesario agregar UIWebView en UIScrollView
Bueno, el único problema webView.scalesPageToFit = YES;es que cambiará el contenido inicial del tamaño de fuente, pero encontré otra opción
Agregar <UIWebViewDelegate, UIScrollViewDelegate>a su archivo .h
Creación de tu UIWebView.
self.mWebview = [[UIWebView alloc] init];
self.mWebview.delegate = self; /// set delegate method of UIWebView
self.mWebview.frame = CGRectMake(0, 35, self.view.bounds.size.width, self.view.bounds.size.height - 80); // set frame whatever you want..
[self.mWebview setOpaque:NO];
self.mWebview.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.mWebview];
Con carga de archivo / contenido HTML.
NSString* htmlString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"File Name"ofType:@"html"] encoding:NSUTF8StringEncoding error:nil];
[self.mWebview loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
#pragma mark -
#pragma mark - Webview Delegate Methods
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
webView.scrollView.delegate = self; // set delegate method of UISrollView
webView.scrollView.maximumZoomScale = 20; // set as you want.
webView.scrollView.minimumZoomScale = 1; // set as you want.
//// Below two line is for iOS 6, If your app only supported iOS 7 then no need to write this.
webView.scrollView.zoomScale = 2;
webView.scrollView.zoomScale = 1;
}
#pragma mark -
#pragma mark - UIScrollView Delegate Methods
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
self.mWebview.scrollView.maximumZoomScale = 20; // set similar to previous.
}
NOTA: Tuve que probar en Mac OS X - 10.9.3 con Xcode 5.1.1 y la versión de iOS 6.1 y posterior.
El scrollViewDidEndZooming no era necesario para que el zoom funcionara correctamente. ¡No estoy seguro de cuál es la intención de ese código, ya que simplemente restablece el mismo valor que se estableció anteriormente al mismo valor exacto!
Norman H
1
Ya exactamente, ¿por qué se necesita la parte scrollViewDidEndZooming? Pero aparte de eso, excelente respuesta. Hizo que incluso las páginas se ampliaran a las que no se les hacía zoom simplemente estableciendo la propiedad "Escala la página para ajustarla".
GKK
25
Sé que esta pregunta es bastante antigua, pero para todos los que usan un guión gráfico y prefieren una respuesta visual aquí está. Simplemente marque esta casilla en el Inspector de atributos de WebView:
puedes usar
webView.scalesPageToFit=YES;
programáticamenteSi está utilizando en xib que solo
click the check box "Scaling" scales Page to fit
fuente
Bueno, el único problema
webView.scalesPageToFit = YES;
es que cambiará el contenido inicial del tamaño de fuente, pero encontré otra opciónAgregar
<UIWebViewDelegate, UIScrollViewDelegate>
a su archivo .hCreación de tu
UIWebView.
Con carga de archivo / contenido HTML.
Espero que esto te sea de ayuda. :)
fuente
Sé que esta pregunta es bastante antigua, pero para todos los que usan un guión gráfico y prefieren una respuesta visual aquí está. Simplemente marque esta casilla en el Inspector de atributos de WebView:
fuente
Si quieres hacerlo mediante programación, usa
Si está utilizando un guión gráfico, debe marcar la casilla de verificación "Escala" escalas Página para ajustar
fuente
DEBE establecer scalePageToFit = YES para que cualquier pellizco y zoom funcione en un UIWebView. Funciona para mi.
fuente