iOS 开发方便的小工具

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

2020-09-27  本文已影响0人  Kpengs

计算高度的时候很多用了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;

        }];

    }];

}

上一篇下一篇

猜你喜欢

热点阅读