Cette logique pour zoomer sur UIWebView, pas besoin d'ajouter UIWebView sur UIScrollView
Eh bien, le seul problème webView.scalesPageToFit = YES;est que cela changera le contenu initial de la taille de la police mais j'ai trouvé une autre option
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 le 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 plus récente.
Le scrollViewDidEndZooming n'était pas nécessaire pour que le zoom fonctionne correctement. Je ne sais pas quelle est l'intention de ce code car il réinitialise simplement la même valeur qui a été définie précédemment à la même valeur exacte!
Norman H
1
Ya exactement, pourquoi la partie scrollViewDidEndZooming est-elle nécessaire? Mais à part ça, superbe réponse. Il a même fait zoomer les pages qui n'étaient pas agrandies en définissant simplement la propriété «Mettre la page à l'échelle».
GKK
25
Je sais que cette question est assez ancienne, mais pour tous ceux qui utilisent un storyboard et préfèrent une réponse visuelle, la voici. Cochez simplement cette case dans l'inspecteur d'attributs de WebView:
vous pouvez utiliser par
webView.scalesPageToFit=YES;
programmeSi vous utilisez dans xib que juste
click the check box "Scaling" scales Page to fit
la source
Eh bien, le seul problème
webView.scalesPageToFit = YES;
est que cela changera le contenu initial de la taille de la police mais j'ai trouvé une autre optionAjouter
<UIWebViewDelegate, UIScrollViewDelegate>
à votre fichier .hCréation de votre
UIWebView.
Avec charger le fichier / contenu HTML.
J'espère que cela vous sera utile. :)
la source
Je sais que cette question est assez ancienne, mais pour tous ceux qui utilisent un storyboard et préfèrent une réponse visuelle, la voici. Cochez simplement cette case dans l'inspecteur d'attributs de WebView:
la source
Si vous voulez le faire par programme, utilisez
Si vous utilisez un storyboard, vous devez cocher la case "Mettre à l'échelle" les échelles de la page pour l'adapter
la source
Vous DEVEZ définir scalePageToFit = YES pour que tout pincement et zoom fonctionne sur un UIWebView. Ça marche pour moi.
la source