我在屏幕底部有一个嵌入式 webView,它加载 Facebook 评论 javascript 插件。
我希望这个 webView 无缝集成到屏幕中,而不是强制用户滚动其内容。
但是,当用户点击某些 webView 按钮时,UI 高度会发生变化,从而使 webView 可以滚动。
问题
如何根据其动态内容动态更新 webView 高度限制?
最佳答案
是的,你可以做到。在 Storyboard中为您的 Web View 设置高度约束,然后在 webviewDidFinishLoad 中执行以下操作
webView.scrollView.scrollEnabled=false;
heightConstraint.constant = webView.scrollView.contentSize.height
其中 heightConstraint
是 Web View 高度约束的 IBOutlet。如果需要,在修改约束后调用 setNeedsLayout()。还要确保将 Web View 的底部约束设置为等于 ScrollView 的底部,以便它可以自由扩展。
更新 您可以为 webview 的 ScrollView 的 contentSize 添加键值观察器。你可以这样做
var myContext = 0
webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: .New, context: &myContext)
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if context == &myContext {
heightConstraint.constant = webView.scrollView.contentSize.height
//call layout update if needed
} else {
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
}
关于ios - 基于动态内容的webView高度约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329889/