美文网首页iOS 开发方便的小工具
iOS 14 准确计算WKWebview Html内容高度 简易

iOS 14 准确计算WKWebview Html内容高度 简易

作者: Kpengs | 来源:发表于2020-09-27 14:28 被阅读0次

    计算高度的时候很多用了kvo不停刷新高度,我使用的时候会导致tableview有抖动的不好效果,琢磨了很久发现了一个只一次就可以准确计算的方法

    //创建属性
    #define WEAKSELF typeof(self) __weak weakSelf = self;
    @property (assign, nonatomic)CGFloat scrollWidth;
    
    - (void)webView:(WKWebView*)webView didFinishNavigation:(null_unspecified WKNavigation*)navigation
    
    {
    
    //
        WEAKSELF;
    
        [webView evaluateJavaScript:@"document.body.scrollWidth" completionHandler:^(id _Nullable result,NSError *_Nullable error) {
    
            //获取页面宽度
    
        //在全局属性定义一个宽度
    
            weakSelf.scrollWidth= [result doubleValue];
    
            NSLog(@"scrollWidth 即为所求:%ff", weakSelf.scrollWidth);
    
            [webView evaluateJavaScript:@"document.body.scrollHeight"completionHandler:^(id _Nullable result,NSError*_Nullable error) {
    
                //获取页面高度
    
                CGFloat scrollHeight = [result doubleValue];
    
    //计算出缩放比,屏幕宽除以webview宽
    
                CGFloat ratio =  CGRectGetWidth(self.webView.frame) /weakSelf.scrollWidth;
    
        //此处就能求出页面缩放比例后的高度
    
    //取到的高度在乘以缩放比即可得到准确高度
    
                self.webHeightNum= scrollHeight*ratio;
    
            }];
    
        }];
    
    }
    
    

    相关文章

      网友评论

        本文标题:iOS 14 准确计算WKWebview Html内容高度 简易

        本文链接:https://www.haomeiwen.com/subject/cnxluktx.html