como aumentar o tamanho da fonte no UIWebView

como aumentar ou diminuir o tamanho da fonte UIWebview, não usando scalePageToFit: NO;

Eu tenho 2 botões – A e A +

@interface NSUInteger textFontSize; - (IBAction)changeTextFontSize:(id)sender { switch ([sender tag]) { case 1: // A- textFontSize = (textFontSize > 50) ? textFontSize -5 : textFontSize; break; case 2: // A+ textFontSize = (textFontSize < 160) ? textFontSize +5 : textFontSize; break; } NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", textFontSize]; [web stringByEvaluatingJavaScriptFromString:jsString]; [jsString release]; } 
 - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *fontSize=@"143"; NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'",[fontSize intValue]]; [myWebview stringByEvaluatingJavaScriptFromString:jsString]; } 

Atualmente, não há nenhuma maneira exposta de manipular diretamente o DOM em um UIWebView, nem quaisquer methods de conveniência para manipular itens como tamanhos de fonte. Eu sugiro arquivar radares .

Tendo dito isto. Você pode modificar o tamanho da fonte alterando o CSS, como qualquer outra página da Web. Se isso não for possível (você não controla o conteúdo), você pode escrever uma pequena function javascript para alterar as propriedades CSS nas páginas DOM, e executá-lo chamando:

 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script; 

Swift 3

 public func webViewDidFinishLoad(_ webView: UIWebView) { let textSize: Int = 300 webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'") } 

Swift mais antigo :

 func webViewDidFinishLoad(webView: UIWebView) { let textSize: Int = 300 webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'") } 

Experimente o código abaixo:

 NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')",currentTextSize]; [_webview stringByEvaluatingJavaScriptFromString:setTextSizeRule]; 

Aqui está o meu para alterar o tamanho da fonte e cor no UIWebView:

  NSString *myString=@"Hello World!"; int textFontSize=2; NSString *myHTML=[NSString stringWithFormat: @"",myString,textFontSize]; [myWebView loadHTMLString:myHTML baseURL:nil]; 

Experimente este método simples

 - (void)webViewDidFinishLoad:(UIWebView *)webView { int fontValue = 150; NSString *webviewFontSize = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')",fontValue]; [your_webview stringByEvaluatingJavaScriptFromString:webviewFontSize]; } 

Altere o tamanho da fonte dos dados HTML buscados alterando a ocorrência do tamanho da fonte na string html buscada para o tamanho de fonte necessário (40 neste exemplo) em um método.

 strHtml = [self htmlEntityDecode:strHtml];//parsing the html string -(NSString *)htmlEntityDecode:(NSString *)string { string = [string stringByReplacingOccurrencesOfString:@"14px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"15px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"16px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"17px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"18px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"19px;" withString:@"40"]; string = [string stringByReplacingOccurrencesOfString:@"20px;" withString:@"40"]; return string; } 

Então a string html: span style = ‘font-size: 20px; Torna-se: span style = ‘font-size: 40

Nota: Altere as outras ocorrências como gt ;, apos; também para que a string desejada seja carregada em seu Webview.

no meu caso eu estou usando um UISlider para o fontSize, pode ser qualquer valor float

 func webViewDidFinishLoad(_ webView: UIWebView) { if let fontSize: Float = (self.fontSizeSlider?.value) { webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(fontSize)%%'") print(fontSize) } }