【问题标题】:uiwebview is shrinking inside a uiscrollviewuiwebview 在 uiscrollview 内缩小
【发布时间】:2015-04-13 12:02:10
【问题描述】:

我想在视图中显示 HTML 内容。因此,我正在使用 webview 呈现 HTML 内容。 webview 在 uiscrollview 中。

由于 HTML 的变化,我需要调整 webview 和滚动视图的高度。我是这样做的:

func webViewDidFinishLoad(webView: UIWebView) {

    webView.scrollView.scrollEnabled = false
    webView.frame.size.height = webView.scrollView.contentSize.height

    self.scrollView.contentSize.height = 267.0 + webView.scrollView.contentSize.height


}

但是当我运行应用程序时会发生这种情况:

起初它看起来很棒。但是当我开始滚动时,webview 会缩小到原来的大小:

知道为什么当我开始滚动滚动视图时网络视图会缩小吗?

我认为这可能与限制有关。也许它会尝试将 webview 的高度恢复到原来的高度。

【问题讨论】:

  • 这可能是 HTML 问题。您是否检查过 webViewDidFinishLoad 被调用了多少次以及 webview 内容高度是如何变化的?
  • 不,我该如何检查?
  • 只需在方法内部添加一个 println(webView.scrollView.contentSize.height) 并检查 xcode 中的输出
  • 但它只在我开始滚动后才会改变,所以我需要一种方法来仅在我开始滚动后触发它。

标签: ios swift uiwebview uiscrollview xcode6


【解决方案1】:

看起来这是一个约束问题,因为当我添加到 webViewDidFinishLoad 这一行时:

    webView.addConstraint(NSLayoutConstraint(item: webView, attribute: NSLayoutAttribute(rawValue: 8)!, relatedBy: NSLayoutRelation(rawValue: 0)!, toItem: nil, attribute: NSLayoutAttribute(rawValue: 0)!, multiplier: 1.0, constant: (webView.scrollView.contentSize.height + 600.0)))

它解决了问题。

【讨论】:

    猜你喜欢
    • 2012-07-16
    • 2011-09-20
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多