2017-06-06 48 views
0

从iOS 11开始,当UIWebView为全屏时,状态栏上会出现假背景,背景色为UIWebView如何摆脱UIWebView上的状态栏背景?

任何人都知道如何摆脱它?

即使添加了IUWebView到故事板,并使其全屏将使状态栏背景出现

我一直在努力的他们合作编辑的大小和UIWebView的其他一些性质和无,但它绝对是来自UIWebView的东西。 也试图看到所有的子视图和它的大小,并没有看到任何奇怪的东西。

附加了屏幕截图,看到灰色的“状态栏”,它在滚动时消失,并且如果UIWebView不在屏幕的该部分上,则不会出现。 我想要它作为第二个屏幕截图,只删除假背景,而不是状态栏。

See the Screenshot enter image description here

回答

5

出现这种情况是因为UIScrollView新的行为调整内容嵌入到包括安全区的插图一样的状态栏。

要解决它,只需将其设置为UIScrollViewContentInsetAdjustmentNever

[self.webView.scrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever]; 

由于iOS的11 Beta 4的,你可以添加到您的视口,也将删除假状态栏

viewport-fit=cover

3

要做到这完全在HTML/CSS中,视口元标记中的viewport-fit=cover是处理此问题的正确方法。

但是,您还需要动态调整填充以处理iPhone X上带有凹槽的相机/扬声器的不同大小的状态栏。

幸运的是,苹果公司暴露的安全区域插图一些CSS常量,所以你可以把那些在你的CSS的优势: 即padding-top: constant(safe-area-inset-top);

我写了一些关于这个场景,并针对iOS的新功能11和iPhone X:https://ayogo.com/blog/ios11-viewport/

0

斯威夫特版本:

webView.scrollView.contentInsetAdjustmentBehavior = .never