如何增加或减少UIWebview字体大小,而不是使用scalePageToFit:NO;
我有2个按钮 - A-和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]; }
目前还没有公开的方法来直接操作UIWebView中的DOM,也没有任何方便的方法来处理像字体大小这样的东西.我建议归档雷达.
话说回来.您可以通过更改CSS来修改字体大小,就像任何其他网页一样.如果那是不可能的(你不控制内容)你可以编写一个小的javascript函数来改变页面DOM中的CSS属性,并通过调用它来执行它:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
斯威夫特3
public func webViewDidFinishLoad(_ webView: UIWebView) { let textSize: Int = 300 webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'") }
老斯威夫特:
func webViewDidFinishLoad(webView: UIWebView) { let textSize: Int = 300 webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'") }