我添加一个UIWebView
作为view
的子视图。即使UIWebView
的内容可以不滚动显示,该视图也始终滚动。
UIWebView
显示在屏幕上?
另一个问题是,当我滚动UIWebView
时,背景是深灰色的
答案 0 :(得分:1)
首次加载屏幕时,请在viewDidLoad
中输入:
yourWebView.scrollView.bounces = false
yourWebView.scrollView.isScrollEnabled = false
并实现UIWebViewDelegate方法以在内容完全加载时启用滚动:
func webViewDidFinishLoad(_ webView: UIWebView)
{
yourWebView.scrollView.bounces = true
yourWebView.scrollView.isScrollEnabled = true
}
您需要将网络视图的opaque
属性设置为false:
yourWebView.backgroundColor = UIColor.clear
yourWebView.isOpaque = false
答案 1 :(得分:0)
使用以下代码,在webviewDidFinishLoading中获取Webview内容的高度,然后在内容高度不大于Webview高度的情况下设置该高度。在下面的代码中,我假设从超级视图来看,webview的顶部和底部约束为零。
class StaticContentVC: UIViewController , UIWebViewDelegate {
@IBOutlet weak var webView : UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
webView.scrollView.isScrollEnabled = false
webView.backgroundColor = UIColor.white
self.webView.loadRequest(URLRequest(url: YourcontentUrl as URL))
}
public func webViewDidFinishLoad(_ webView: UIWebView){
let newSize = Float(webView.stringByEvaluatingJavaScript(from: "document.documentElement.scrollHeight") ?? "") ?? 0.0
if CGFloat(newSize) > UIScreen.main.bounds.size.height {
webView.scrollView.isScrollEnabled = true
}else {
webView.frame = CGRect(x: webView.frame.origin.x, y: webView.frame.origin.y, width: webView.frame.size.width, height: CGFloat(newSize))
webView.scrollView.isScrollEnabled = false
}
}