javascript - 如何获得正确的 UIWebView 内容高度?

标签 javascript iphone ios uiwebview

我在 View 中添加 UIWebView,在 ScrollView 中添加 That view。

我想获取 UIWebView 内容的框架。那我可以设置frame来view和scrollview吗?

我知道我们可以使用 javascript 获取高度。如下所述:

float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];

但是当我旋转 View 并在 didRotateFromInterfaceOrientation::(UIInterfaceOrientation)fromInterfaceOrientation 方法中重新计算 UIWebView 内容的高度时,内容高度增加了。

所以请建议我如何在旋转方向时获得正确的高度?

谢谢。

最佳答案

采用这种方法:

- (void) webViewDidFinishLoad:(UIWebView *)webView{
    CGRect frame = wvContent.frame;
    CGSize fittingSize = [wvContent sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    wvContent.frame = frame;
}

然后每次设备旋转时调用这个方法:

- (void) reloadContent
{
    CGRect frame = wvContent.frame;
    frame.size.height = 1;
    frame.size.width = wvContent.frame.size.width; // you should change webview's width here.
    wvContent.frame = frame;

    [wvContent loadHTMLString:yourHTML baseURL:nil]; // reload webview
}

希望有所帮助:)

关于javascript - 如何获得正确的 UIWebView 内容高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087002/

相关文章:

javascript - 重写 !important 样式

iphone - 在ScrollView中查找TextField相对于屏幕的坐标

iphone - 我的 UIActionSheet 不可点击,现在我无能为力

iphone - UIDatePicker,根据日期名称和今天的日期设置最大和最小日期

ios - Swift - 委托(delegate)不从其他类调用方法

ios - Theos实例方法调用

ios - 在两个 View Controller 之间同步数据以避免再次创建相同的观察者

javascript - Angularjs如何正确显示对象

javascript - 如何更改由 "let"设置的 Javascript 中的 block 变量?

Javascript 文件未更新(第一次)