如何使用自动布局根据 webview 内容管理 UITableHeaderView 的高度

Posted

技术标签:

【中文标题】如何使用自动布局根据 webview 内容管理 UITableHeaderView 的高度【英文标题】:how to manage Height of UITableHeaderView in based on webview content using auto layout 【发布时间】:2016-10-24 05:59:17 【问题描述】:

当我使用自动布局在headerview 上添加UIWebView 时。我无法根据UIWebView 的内容管理headerview 的高度。

【问题讨论】:

【参考方案1】:

我建议以下步骤:

首先,将webViewHeight 声明为类变量,以便所有函数都可以访问它。

var webViewHeight: CGFloat = 0.0

然后,获取 UIWebView 内容高度的高度。确保您已在 viewForHeaderInSection 中设置 UIWebView 委托

func webViewDidFinishLoad(webView: UIWebView) 
    // check if webview finished loading
    if !webView.isLoading 
        if webViewHeight == 0 
            // get webview height
            webViewHeight = webView.scrollView.contentSize.height
        

        // then reload tableView
        myTableView.reloadData()
    

它应该在

中更新
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
    return webViewHeight

【讨论】:

"webView.scrollView.contentSize.height" 它总是返回恒定的高度。 @RajniJoharRaswant 它应该返回双精度值。你得到了什么?尝试在webViewDidFinishLoad中使用 print(webView.scrollView.contentSize.height)@ @RajniJoharRaswant 太好了,别忘了标记这个答案。谢谢 我认为这不是更好的方法,因为当我这样做时它会继续重新加载 tableview。我不知道我是对是错,请纠正我。 @BhavsangJam 很棒。所以我认为需要添加条件来检查webview是否完成加载if !webView.isLoading // do the code here

以上是关于如何使用自动布局根据 webview 内容管理 UITableHeaderView 的高度的主要内容,如果未能解决你的问题,请参考以下文章

自动布局:使用 UIWebViews 自定义 UIView 高度约束

具有自动布局的多行UILabel,如何在不更改标签框架的情况下根据内容调整字体大小?

如何在启用自动布局的情况下根据 UILabel 的内容自动更改 UILabel 对象的高度和下方其他元素的位置

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

UITableViewCell 高度根据行内容使用自动布局动态计算

android使用WebView里的js与android进行交互!