iOS: 计算 UIWebView 的内容高度  

iOS: 计算 UIWebView 的内容高度
 

 

先是 html 文件内容

iOS: 计算 UIWebView 的内容高度
 
// index.html
<html>
<body>
    <div >
        <a href="id:abc" style="text-decoration:none; color:green">
            John
        </a>
        : This is out Rich Text Editing View
    </div>
</body>
</html>
iOS: 计算 UIWebView 的内容高度
 

加载 html 文件

iOS: 计算 UIWebView 的内容高度
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSBundle *mainBundle = [NSBundle mainBundle];
    NSURL *indexFileURL = [mainBundle URLForResource:@"index" withExtension:@"html"];
    [self.webView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
}
iOS: 计算 UIWebView 的内容高度
 

计算 webView 显示内容后实际高度

两种方法,方法1可以得到内容的实际高度,方法2得到了将内容显示完整后的 webView 的尺寸(包含 UIEdgeInsets)

iOS: 计算 UIWebView 的内容高度
 
- (void)webViewDidFinishLoad:(UIWebView *)wb
{
    //方法1
    CGFloat documentWidth = [[wb stringByEvaluatingJavaScriptFromString:@"document.getElementById('content').offsetWidth"] floatValue];
    CGFloat documentHeight = [[wb stringByEvaluatingJavaScriptFromString:@"document.getElementById("content").offsetHeight;"] floatValue];
    NSLog(@"documentSize = {%f, %f}", documentWidth, documentHeight);
    
    //方法2
    CGRect frame = wb.frame;
    frame.size.width = 768;
    frame.size.height = 1;

//    wb.scrollView.scrollEnabled = NO;
    wb.frame = frame;
    
    frame.size.height = wb.scrollView.contentSize.height;
    
    NSLog(@"frame = %@", [NSValue valueWithCGRect:frame]);
    wb.frame = frame;
}
iOS: 计算 UIWebView 的内容高度
 

截图:iOS: 计算 UIWebView 的内容高度
 

 
  • 相关阅读:
    使用zoom.js设置博客园图片放大缩小
    js中变量对象和活动对象的区别 闭包时的区别
    总结Unity 初学者容易犯的编译与运行时错误
    三天之后的「数」下英雄会是个什么会?
    奇点云数据中台技术汇(十)| 数据服务,让业务开发更敏捷
    湖畔论剑 | 一封“数”下英雄会的神秘邀请函
    12月5日,「数据中台建设之道」线上开聊
    StartDT AI Lab | 视觉智能引擎之算法模型加速
    贵州茅台集团一行考察奇点云,探讨酒业数智化转型
    何夕:如何让实体商家拥有淘宝一样的数据化运营能力
  • 原文地址:https://www.cnblogs.com/angongIT/p/4200527.html
  • 先是 html 文件内容

    iOS: 计算 UIWebView 的内容高度
 
    // index.html
    <html>
    <body>
        <div >
            <a href="id:abc" style="text-decoration:none; color:green">
                John
            </a>
            : This is out Rich Text Editing View
        </div>
    </body>
    </html>
    iOS: 计算 UIWebView 的内容高度
 

    加载 html 文件

    iOS: 计算 UIWebView 的内容高度
 
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        NSBundle *mainBundle = [NSBundle mainBundle];
        NSURL *indexFileURL = [mainBundle URLForResource:@"index" withExtension:@"html"];
        [self.webView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
    }
    iOS: 计算 UIWebView 的内容高度
 

    计算 webView 显示内容后实际高度

    两种方法,方法1可以得到内容的实际高度,方法2得到了将内容显示完整后的 webView 的尺寸(包含 UIEdgeInsets)

    iOS: 计算 UIWebView 的内容高度
 
    - (void)webViewDidFinishLoad:(UIWebView *)wb
    {
        //方法1
        CGFloat documentWidth = [[wb stringByEvaluatingJavaScriptFromString:@"document.getElementById('content').offsetWidth"] floatValue];
        CGFloat documentHeight = [[wb stringByEvaluatingJavaScriptFromString:@"document.getElementById("content").offsetHeight;"] floatValue];
        NSLog(@"documentSize = {%f, %f}", documentWidth, documentHeight);
        
        //方法2
        CGRect frame = wb.frame;
        frame.size.width = 768;
        frame.size.height = 1;
    
    //    wb.scrollView.scrollEnabled = NO;
        wb.frame = frame;
        
        frame.size.height = wb.scrollView.contentSize.height;
        
        NSLog(@"frame = %@", [NSValue valueWithCGRect:frame]);
        wb.frame = frame;
    }
    iOS: 计算 UIWebView 的内容高度
 

    截图:iOS: 计算 UIWebView 的内容高度