根据 iPhone 上的内容设置 webview 的动态高度

Posted

技术标签:

【中文标题】根据 iPhone 上的内容设置 webview 的动态高度【英文标题】:Set dynamic height of webview depending on the content on an iPhone 【发布时间】:2010-07-21 09:18:53 【问题描述】:

我想根据动态文本为 webview 设置动态高度。我试过了

       [my_webview sizeThatFits:CGSizeZero];

但这对我不起作用。我想动态设置 webview 的高度。

【问题讨论】:

[view sizeThatFits:] 不会改变视图大小。尝试 [view sizeToFit] 但我不确定这是否适用于 Web 视图,因为它会根据子视图调整大小,并且 Web 视图没有任何典型的子视图。因此,这是评论而不是答案。 【参考方案1】:

请参阅my answer 了解类似问题。诀窍是在发送 -sizeThatFits: 之前将 webView 的框架设置为最小高度。

【讨论】:

【参考方案2】:

如下设置您的网络视图:

- (void)webViewSettings 
    NSString *htmlString = @"Your HTML String";
    NSString* descHtmlString = [NSString stringWithFormat: @"<html><meta name=\"viewport\" content=\"width=300, user-scalable=yes\" /><div style='width:300px' id='ContentDiv'><font face=\"Arial\" size=2.5 color='#702f70'>%@</font></div></html>", htmlString];
    descHtmlString = [descHtmlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    [self.webView loadHTMLString:descHtmlString baseURL:[NSURL URLWithString:@""]];

然后在你的接口文件中实现UIWebViewDelegate,在实现文件中实现如下方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
        NSString *contentHeight = [self.descriptionWeb stringByEvaluatingjavascriptFromString:@"document.getElementById('ContentDiv').offsetHeight"];
        self.descriptionWeb.frame = CGRectMake(10,webView.frame.origin.y, 300, [contentHeight floatValue]);

【讨论】:

以上是关于根据 iPhone 上的内容设置 webview 的动态高度的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript-Vue中如何根据内容长度设置WebView的高度?

iphone - 点击 WebView 上的手势与点击的链接冲突

如何为 tableview 上的 webview 内容启用 VoiceOver

Android WebView 似乎忽略了网页上的“视口”信息

在 iPad 和 iPhone 上显示 UIwebview

从 iPhone 上的表格视图中下载的内容将数组保存到 PList