Esta lógica para zoom de UIWebView, sem necessidade de adicionar UIWebView em UIScrollView
Bem, só problema com webView.scalesPageToFit = YES; é que ele mudará o conteúdo inicial do tamanho da fonte, mas eu encontrei outra opção
Adicione <UIWebViewDelegate, UIScrollViewDelegate>ao seu arquivo .h
Criação do seu 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];
Com carregamento de arquivo / conteúdo 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: Tive que testar no Mac OS X - 10.9.3 com Xcode 5.1.1 e iOS versão 6.1 e posterior.
O scrollViewDidEndZooming não era necessário para que o zoom funcionasse corretamente. Não tenho certeza de qual é a intenção desse código, pois ele apenas está redefinindo o mesmo valor definido anteriormente para o mesmo valor!
Norman H
1
Sim, por que a parte scrollViewDidEndZooming é necessária? Mas, fora isso, resposta excelente. Isso fez com que até mesmo as páginas fossem ampliadas, bastando definir a propriedade "Escalas para caber na página".
GKK
25
Eu sei que esta pergunta é muito antiga, mas para todos que estão usando um storyboard e preferem uma resposta visual aqui está. Basta marcar esta caixa no Inspetor de atributos do WebView:
você pode usar
webView.scalesPageToFit=YES;
programaticamenteSe você estiver usando no xib do que apenas
click the check box "Scaling" scales Page to fit
fonte
Bem, só problema com
webView.scalesPageToFit = YES;
é que ele mudará o conteúdo inicial do tamanho da fonte, mas eu encontrei outra opçãoAdicione
<UIWebViewDelegate, UIScrollViewDelegate>
ao seu arquivo .hCriação do seu
UIWebView.
Com carregamento de arquivo / conteúdo HTML.
Espero que isso seja útil para você. :)
fonte
Eu sei que esta pergunta é muito antiga, mas para todos que estão usando um storyboard e preferem uma resposta visual aqui está. Basta marcar esta caixa no Inspetor de atributos do WebView:
fonte
Se você quiser fazer programaticamente, use
Se você estiver usando o storyboard, deverá marcar a caixa de seleção "Dimensionamento" escalas da página para caber
fonte
Você DEVE definir scalePageToFit = YES para qualquer pinçamento e zoom para funcionar em um UIWebView. Funciona para mim.
fonte