将背景设置为透明后的iOS UINavigationController显示黑屏

Posted

技术标签:

【中文标题】将背景设置为透明后的iOS UINavigationController显示黑屏【英文标题】:iOS UINavigationController after setting background to transparent shows black screen 【发布时间】:2018-04-26 13:42:22 【问题描述】:

UINavigationController 遇到了一个非常奇怪的问题。 我正在尝试在UINavigationController 中呈现不透明的UIViewController,并且我想看到之前模糊的控制器内容。 我将 alpha 设置为 UIViewController 视图:

view.alpha = 0.9

然后我尝试摆脱UINavigationController背景:

navigationController?.view.backgroundColor = .clear

最初在UINavigationController 动画过渡期间一切看起来都很好,但在动画结束后UINavigationController 背景变成黑色。此问题仅在颜色透明时存在。

也许其他人遇到过这个问题?

【问题讨论】:

不,这个问题与 UIViewController 在导航控制器中的内容定位无关。我特别询问设置导航控制器背景(而不是导航栏背景)。 为此,您应该重写 UINavigationController 并将其viewbackgroundColor 设置为awakeFromNib 【参考方案1】:

如果您以模态方式显示导航控制器,请尝试将其 modalPresentationStyle 设置为 .overFullScreen

【讨论】:

这部分解决了我的问题,但是我不想使用 modalPresentationStyle。但我会弄清楚的。谢谢!

以上是关于将背景设置为透明后的iOS UINavigationController显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章

iOS导航栏背景透明渐变

UIWebView背景设置为“清除颜色”,但它不透明

iOS 模拟器使用模板渲染模式在透明图像上显示白色背景

如何在 iOS 应用程序中为 iFrame 设置透明背景?

怎样将android控件背景设置成透明?

图像背景后的黑色背景(不透明度 0.6),文本为不透明度 1