自iOS 11起,当UIWebView
全屏时,状态栏上会显示假背景,其背景颜色与UIWebView
相同。
任何人都知道如何摆脱它?
即使将IUWebView
添加到故事板并使其全屏显示,也会显示状态栏背景
我一直在尝试编辑UIWebView的大小和其他一些属性,但它们都没有用,但它肯定来自UIWebView。 还尝试查看所有子视图及其大小,并没有看到任何奇怪的内容。
附上屏幕截图,看到灰色的“状态栏”,它在滚动时消失,如果UIWebView
没有超过屏幕的那一部分则不会出现。
我希望它在第二个屏幕截图中,只删除假背景,而不是状态栏。
答案 0 :(得分:7)
这是因为调整内容插入的UIScrollView
新行为包括安全区域插入,如状态栏。
要修复它,只需将其设置为UIScrollViewContentInsetAdjustmentNever
[self.webView.scrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
从iOS 11 Beta 4开始,您可以将其添加到视口中,并删除假状态栏
viewport-fit=cover
答案 1 :(得分:3)
要完全在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/
答案 2 :(得分:0)
Swift版本:
webView.scrollView.contentInsetAdjustmentBehavior = .never