【问题标题】:How to get rid of the status bar background on the UIWebView?如何摆脱 UIWebView 上的状态栏背景?
【发布时间】:2017-11-07 21:01:36
【问题描述】:

从 iOS 11 开始,当UIWebView 全屏时,状态栏上会出现与UIWebView 背景颜色相同的假背景。

有人知道如何摆脱它吗?

即使将IUWebView 添加到情节提要并使其全屏显示,也会使状态栏背景出现

我一直在尝试编辑 UIWebView 的大小和其他一些属性,但它们都不起作用,但这绝对是来自 UIWebView 的东西。 还尝试查看所有子视图及其大小,并没有看到任何奇怪的东西。

附上一张截图,看灰色的“状态栏”,滚动时它会消失,如果UIWebView不在屏幕的那个部分,它就不会出现。 我想要它在第二个屏幕截图中,只删除假背景,而不是状态栏。

【问题讨论】:

    标签: ios objective-c swift cordova uiwebview


    【解决方案1】:

    发生这种情况是因为 UIScrollView 调整内容插入以包含安全区域插入(如状态栏)的新行为。

    要修复它,只需将其设置为 UIScrollViewContentInsetAdjustmentNever

    [self.webView.scrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
    

    从 iOS 11 Beta 4 开始,您可以将其添加到您的视口中,并且还会删除假状态栏

    viewport-fit=cover

    【讨论】:

      【解决方案2】:

      要完全在 HTML/CSS 中执行此操作,Viewport 元标记中的viewport-fit=cover 是处理此问题的正确方法。

      但您还需要动态调整填充以处理 iPhone X 上带有缺口的摄像头/扬声器的不同大小的状态栏。

      幸运的是,Apple 为安全区域插图公开了一些 CSS 常量,因此您可以利用 CSS 中的这些常量: 即padding-top: constant(safe-area-inset-top);

      我写了更多关于这个场景和 iOS 11 和 iPhone X 的新功能:https://ayogo.com/blog/ios11-viewport/

      【讨论】:

        【解决方案3】:

        Swift 版本:

        webView.scrollView.contentInsetAdjustmentBehavior = .never
        

        【讨论】:

        • 不起作用。使用 WebKitView 时内容在状态栏上滚动
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 2013-12-12
        相关资源
        最近更新 更多