iOS WebView 空白
Posted
技术标签:
【中文标题】iOS WebView 空白【英文标题】:iOS WebView blank gap 【发布时间】:2015-04-26 21:46:52 【问题描述】:我使用 youtube 的标准嵌入网址 (sample) 在我的 ios 8.3 应用程序中嵌入了一个 Youtube 视频,它按预期工作,但看起来很奇怪。那个白色间隙(视图树检查器上的蓝色区域)不应该存在。
我可以确认这不是 CSS 问题,因为检查器显示它实际上占据了 uiWebView 组件的 100% 宽度和高度。
我对左、上和右边框设置了约束,以使窗口/布局指南相等,所以这也不是问题。似乎一个私有 _UIWebViewScrollView 组件占用了我分配给 UIWebView 的所有高度,并将真实内容(UIWebViewBrowserView)推到所述区域的底部。
我查找了有关滚动视图类的信息,但似乎只有头文件散布在网络上,没有真正的苹果文档,所以如果可能的话,我宁愿不要弄乱那个滚动视图。
看来我的预感是对的,另一个question also regarding a scrollview 上的某个人描述了同样的问题,但提到的解决问题的功能要么不再存在,要么现在是私有的。我还在寻找答案。
【问题讨论】:
你给webview一个固定的高度吗? 我对 iOS 开发很陌生,但故事板 UIWebView 的高度为 270 像素。以防万一这里是 UIWebView imgur.com/enz84l8,OMh3Qsf 的布局属性的屏幕截图 不用担心。 :) 单击 top space to: top layout guide 旁边的编辑按钮并将常量设置为 0。 已经设置为 0 :( 【参考方案1】:我修好了。
override func viewWillLayoutSubviews()
super.viewWillLayoutSubviews();
playerWebView.scrollView.contentInset = UIEdgeInsetsZero;
添加到我对问题所做的编辑中,我忘记了快速更改集和获取访问器变量的方法,就像在 C# 中一样。
【讨论】:
在 Swift 3.0 中它现在是 playerWebView.scrollView.contentInset = UIEdgeInsets.zero【参考方案2】:Swift 3:移除 UIWebView 中的默认空白顶部空间
override func viewWillLayoutSubviews()
super.viewWillLayoutSubviews();
webView.scrollView.contentInset = UIEdgeInsets.zero;
【讨论】:
【参考方案3】:接受的解决方案对我不起作用。相反,这只是因为我没有使用导航栏标题文本的空间。我通过添加displayMode: .inline
摆脱了它。
var body: some View
VStack
WebView(request: URLRequest(url: URL(string: url!)!))
.navigationBarTitle(Text("Title"), displayMode: .inline)
【讨论】:
【参考方案4】:Swift 3 更新
webViewResetPassw.scrollView.contentInset = UIEdgeInsets.zero
【讨论】:
以上是关于iOS WebView 空白的主要内容,如果未能解决你的问题,请参考以下文章
构造 2,使用 Ejecta 和 iOS8 webview 导出 iOS 导致空白屏幕
求助,react native webview 点击链接进入页面显示空白,IOS