gpt4 book ai didi

ios - 基于动态内容的webView高度约束

转载 作者:可可西里 更新时间:2023-11-01 00:23:06 27 4
gpt4 key购买 nike

我在屏幕底部有一个嵌入式 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com