106 votes

Activer le zoom/pincement sur UIWebView

J'ai une UIWebView avec un fichier pdf. Il fonctionne très bien. Mais comment puis-je activer le zoom sur le fichier pdf?

232voto

JEzu Points 1561

Assurez-vous que vous avez coché "Échelles de la page d'adapter"

46voto

Kundapra Hudga Points 930

vous pouvez utiliser webView.scalesPageToFit=YES; par programmation

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

29voto

iPatel Points 15121

Cette Logique de zoom de l'UIWebView, pas besoin d'ajouter UIWebView sur UIScrollView

Bien seul problème avec webView.scalesPageToFit = YES; est, en changer la teneur initiale taille de la police, mais j'ai eu d'autre option par mon auto, Sa fonctionne très bien pour moi.

Ajouter <UIWebViewDelegate, UIScrollViewDelegate> de votre .h fichier

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 charger un fichier HTML/le contenu.

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

REMARQUE: j'ai du testé sur Mac OS X 10.9.3 avec Xcode 5.1.1 et la version iOS 6.1 et dernier.

J'espère que ce sera utile pour vous. :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X