iOS WebView空白差距

时间:2015-04-26 21:46:52

标签: ios swift uiwebview

我已经使用youtube的标准嵌入式网址(collections.Counter)在我的iOS 8.3应用中嵌入了一个Youtube视频,该网站按预期工作但看起来很奇怪。那个白色的间隙(视图树检查员的蓝色区域)不应该存在。

View tree

我可以确认它不是CSS问题,因为检查员显示它实际上占据了uiWebView组件的100%宽度和高度。

enter image description here

我对左边,上边和右边框设置了约束,以等同于窗口/布局指南,这也不是问题所在。似乎私有的_UIWebViewScrollView组件占用了我分配给UIWebView的所有高度,并将真实内容(UIWebViewBrowserView)推送到所述区域的底部。

ViewTree UIWebViewBrowserView detail

我查看了滚动视图类的信息,但似乎只有网页文件散布在网上,没有真正的苹果文档,所以如果可能的话,我宁可不要乱用滚动视图。

似乎我的预感是正确的,另一个sample上有人描述了同样的问题,但是提到的修复问题的功能要么不再存在,要么现在是私有的。我还在寻找答案。

4 个答案:

答案 0 :(得分:15)

我修好了。

  override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews();

    playerWebView.scrollView.contentInset = UIEdgeInsetsZero;
  }

添加到我对问题的编辑,我忘记了快速更改设置并获取访问者变量的方法,如在C#中。

答案 1 :(得分:2)

Swift 3 :删除UIWebView中的默认空白顶部空间

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews();

    webView.scrollView.contentInset = UIEdgeInsets.zero;
}

答案 2 :(得分:0)

更新swift 3

webViewResetPassw.scrollView.contentInset = UIEdgeInsets.zero

答案 3 :(得分:0)

接受的解决方案对我不起作用。相反,这仅仅是因为我没有使用导航栏标题文本的空间。我通过添加displayMode: .inline来摆脱它。

    var body: some View {
        VStack {
            WebView(request: URLRequest(url: URL(string: url!)!))
        }.navigationBarTitle(Text("Title"), displayMode: .inline)
    }