繁体   English   中英

获取UIWebView加载内容的高度

[英]Get height of UIWebView loaded content

因此,我所需要的是一种将UIButton放在UIScrollView之上以及UIWebView之下的方法。 我想要这种方式的原因是,当用户滚动加载到UIWebView的页面时,我需要按钮“滚动”。

为了使它起作用,我需要获取加载的网页内容的高度,然后设置Web视图的高度以与此匹配 如果可以的话,我打算设置UIScrollView的contentSize以匹配按钮和Web视图的高度。

我知道应该以某种方式在- (void)webViewDidStartLoad:(UIWebView *)webView方法中发生这种情况,该方法已在stackoverflow的许多线程上得到确认(例如, 这一点 )。 我也知道苹果公司说您不应将UiWebView放在UIScrollView中,因为滚动动作可能会干扰。 禁用Web视图的滚动应该可以避免该问题。

有很多讨论这个问题的话题,但是似乎没有一个对我有用。 可能是因为我在iOS7上运行吗?



我在这里非常沮丧,非常感谢您的帮助!

您可以使用以下代码获取高度:

NSString *heightStrig = [webView stringByEvaluatingJavaScriptFromString:@"(document.height !== undefined) ? document.height : document.body.offsetHeight;"];
float height = heightStrig.floatValue;

完整的代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGRect frame = webView.frame;
    NSString *heightStrig = [webView stringByEvaluatingJavaScriptFromString:@"(document.height !== undefined) ? document.height : document.body.offsetHeight;"];
    float height = heightStrig.floatValue + 10.0;
    frame.size.height = height;
    webView.frame = frame;
}

您可以按以下方式获取加载到UIWebView中的内容的高度:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    CGFloat contentHeight = webView.scrollView.contentSize.height;
}

然后相应地调整Web视图的框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM