J'ai une UIWebView avec un fichier pdf. Ça fonctionne bien. Mais comment puis-je activer le zoom sur le fichier pdf?
Assurez-vous que vous avez coché la "page des échelles pour s'adapter"
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 pour le zoom d'UIWebView, pas besoin d'ajouter UIWebView sur UIScrollView
Eh bien, seul problème avec webView.scalesPageToFit = YES;
c'est ça, ça va changer le contenu initial de la taille de la police mais j'ai trouvé une autre option
Ajouter <UIWebViewDelegate, UIScrollViewDelegate>
à 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 de fichier/contenu 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.
}
REMARQUE: J'ai dû tester sur Mac OS X - 10.9.3 avec Xcode 5.1.1 et iOS version 6.1 et dernière.
J'espère que cela vous sera utile. :)
Vous DEVEZ définir échellesPageToFit = OUI pour que tout pincement et zoom fonctionne sur une UIWebView. Ça marche pour moi.