首页 > 代码库 > iOS UIWebView 无法确定web页面的真实高度
iOS UIWebView 无法确定web页面的真实高度
@interface IndEditorDetailViewController ()<UIWebViewDelegate, NJKWebViewProgressDelegate> { UIWebView *_webView; UIProgressView *_progressView; NJKWebViewProgress *_progressProxy; } @end @implementation IndEditorDetailViewController - (void)viewDidLoad { _progressView = [[UIProgressView alloc] init]; _progressView.frame = CGRectMake(0, 0, 320, 10); [self.view addSubview:_progressView]; _progressProxy = [[NJKWebViewProgress alloc] init]; _webView.delegate = _progressProxy; _progressProxy.webViewProxyDelegate = self; _progressProxy.progressDelegate = self; } - (void)webViewDidFinishLoad:(UIWebView *)webView{ // 一般获取网页高度会在这个方法里获取 // 但这里获取的高度未必就是web页面的真实高度,因为web中图片未加载完有可能导致web界面不真实,或长或短 // 你能可能用到下面的js方法去获取,但其实都没用 /** 1、document.documentElement.offsetHeight; 2、document.body.clientHeight; 3、document.documentElement.scrollHeight 4、 CGRect frame = webView.frame; CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; frame.size = fittingSize; webView.frame = frame; 5、getBodyHeight() // 网页用js实现好的方法 6、CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"] floatValue]; */ // 所以必须要找到能完全确定web加载,才能确定web高度 // 在网上找了个工具 NJKWebViewProgress } #pragma mark - NJKWebViewProgressDelegate -(void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress { if (progress == 0.0) { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; _progressView.progress = 0; [UIView animateWithDuration:0.27 animations:^{ _progressView.alpha = 1.0; }]; } if (progress == 1.0) { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; [UIView animateWithDuration:0.27 delay:progress - _progressView.progress options:0 animations:^{ _progressView.alpha = 0.0; // webView彻底加载完 CGFloat height = [[_webView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"] floatValue]; CGRect frame = _webView.frame; frame.size.height = height; _webView.frame = frame; } completion:nil]; } [_progressView setProgress:progress animated:NO]; } @end
iOS UIWebView 无法确定web页面的真实高度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。