UIWebView 设置字体样式和行间距

时间:2022-05-16 06:10:07

1UIWebView设置字体大小,颜色,字体:

UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:
NSString *jsString = [NSString stringWithFormat:@" \n""
 \n"" \n"" \n""%@ \n""",  @" 宋体 "@"#23283b", message];
[ self.outlet_wv_content loadHTMLString:jsString baseURL: nil];

2 、计算UIWebView 的高度

网上有文章介绍使用如下代码计算高度,但不太准确,可能是因为有时候html 还没加载完计算就不准确了。

1. CGFloat height = [[webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"] floatValue];
后来使用如下方法比较准确,就是加载完成后再去计算,不过有个问题是,第一次计算出来高度同时设置了对应高度后,后面计算的结果会受第一次的结果影响,也就是说高度保持第一次计算的结果。我测试的是第一次是内容较多,后面几次是内容较少,但是高度始终保持第一次的高度,不知如果后面的内容比第一次的多,会不会重新计算还是保持第一次的计算结果。所以保险一点,在每次计算之前,先重设一下高度。

- ( void)webViewDidFinishLoad:(UIWebView *)webView  {
         const CGFloat defaultWebViewHeight = 22.0;
         //reset webview size
        CGRect originalFrame = webView.frame;
        webView.frame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y, 320, defaultWebViewHeight);
    
        CGSize actualSize = [webView sizeThatFits:CGSizeZero];
         if (actualSize.height <= defaultWebViewHeight) {
                actualSize.height = defaultWebViewHeight;
            }
        CGRect webViewFrame = webView.frame;
        webViewFrame.size.height = actualSize.height;
        webView.frame = webViewFrame;  
          
}