Activer le zoom / pincer sur UIWebView

J’ai un UIWebView avec un fichier pdf. Ça fonctionne bien. Mais comment puis-je activer le zoom sur le fichier pdf?

Assurez-vous d’avoir coché “Scales page pour l’ajuster”

vous pouvez utiliser webView.scalesPageToFit=YES; par programmation

Si vous utilisez dans xib que simplement click the check box "Scaling" scales Page to fit

Cette logique de zoom de UIWebView, pas besoin d’append UIWebView sur UIScrollView

Eh bien, seul problème avec webView.scalesPageToFit = YES; est-ce que, il va changer le contenu initial de la taille de la police, mais j’ai trouvé une autre option

Ajoutez à votre fichier .h

Création de votre 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]; 

Avec chargement du fichier / contenu HTML.

 NSSsortingng* htmlSsortingng = [NSSsortingng ssortingngWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"File Name"ofType:@"html"] encoding:NSUTF8SsortingngEncoding error:nil]; [self.mWebview loadHTMLSsortingng:htmlSsortingng 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. } 

REMARQUE: J’ai dû tester sur Mac OS X – 10.9.3 avec Xcode 5.1.1 et iOS version 6.1 et ultérieure.

J’espère que cela vous sera utile. 🙂

Je sais que cette question est assez ancienne, mais pour tout le monde qui utilise un storyboard et préfère une réponse visuelle ici, c’est. Cochez simplement cette case dans l’inspecteur des atsortingbuts de WebView:

entrer la description de l'image ici

Si vous voulez faire par programmation, alors utilisez

 webView.scalesPageToFit = true; 

Si vous utilisez un storyboard, vous devez cocher la case “Mise à l’échelle” entrer la description de l'image ici

Vous DEVEZ définir scalesPageToFit = YES pour toute opération de pincement ou de zoom sur une UIWebView. Ça marche pour moi.