iOS 13 窗口背景颜色

Posted

技术标签:

【中文标题】iOS 13 窗口背景颜色【英文标题】:iOS 13 window background color 【发布时间】:2019-08-29 14:00:34 【问题描述】:

上图处于深色模式,在应用委托中进行了以下设置:

if (@available(ios 13.0, *)) 
    self.window.backgroundColor = [UIColor systemBackgroundColor];

问题是在深色模式下,顶部的白色应该是黑色的。 我怎样才能做到这一点?

谢谢。

【问题讨论】:

在 iOS 13 中,窗口属于场景委托,而不是应用委托。 @matt 有趣.. 虽然在应用程序委托中我确实有一个有效的窗口对象:<UIWindow: 0x7fe94dd08160; frame = (0 0; 375 812); hidden = YES; tintColor = UIExtendedSRGBColorSpace 0.01 0.5 0.401961 1; gestureRecognizers = <NSArray: 0x60000273a2e0>; layer = <UIWindowLayer: 0x60000297ba40>> 我想知道为什么它说hidden.. 视图层次结构调试器打印:<UIWindow: 0x7fe94dd08160; frame = (0 0; 375 812); autoresize = W+H; tintColor = UIExtendedSRGBColorSpace 0.0627451 0.501961 0.501961 1; gestureRecognizers = <NSArray: 0x60000273a2e0>; layer = <UIWindowLayer: 0x60000297ba40>>跨度> 看到这个***.com/a/57152709/8687925 @matt 我现在明白你的意思了..慢慢沉入其中..谢谢 @Zsolt 你终于找到解决方案了吗?我在这里遇到了同样的问题。 【参考方案1】:

这仍然是问题吗?这是我的代码,它根据登录状态重定向到initialViewController。它正在工作。

if let appDelegate = UIApplication.shared.delegate as? AppDelegate 
    appDelegate.window?.rootViewController = initialViewController
    appDelegate.window?.makeKeyAndVisible()

    if #available(iOS 13.0, *) 
         appDelegate.window?.backgroundColor = .systemBackground
    else
         appDelegate.window?.backgroundColor = .white // as you want
    
 

【讨论】:

以上是关于iOS 13 窗口背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

组合布局IOS 13组背景颜色

iOS 13 设置状态栏背景颜色

iOS:我的 TableView 标题的背景颜色在 iOS13 中不再改变

iOS13状态栏背景颜色与大文本模式下的导航栏不同

Xcode 11 & iOS13,使用 UIKIT 不能改变 UIViewController 的背景颜色

iOS15 UI适配之导航条主题: 背景颜色标题颜色