iOS 开发

iOS13 暗黑模式适配

2020-04-07  本文已影响0人  介是阿姐

iOS 13 暗黑模式适配

首先将xcode更新到11,在模拟器中 settings - Developer 中打开 Dark Appearance,这样就打开了暗黑模式。

UITraitCollection

UIViewControllerUIViewUIScreenUIWindow 遵从了协议 UITraitEnvironment ,这个协议有一个 UITraitCollection 类型的属性 traitCollection,从而这些类也拥有了这个属性 ,我们可以通过这个属性来判断当前的app的是否暗黑模式:

BOOL isDark = (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark);

使用时机

UIViewController

- (void)viewWillLayoutSubviews;
- (void)viewDidLayoutSubviews;
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection;

UIView

- (void)drawRect:(CGRect)rect;
- (void)layoutSubviews;
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection;

注:使用 traitCollectionDidChange 这种方式,只有在模式发生改变时才会调用。

关闭全局暗黑模式

info.plist中设置key User Interface Style value Light

暗黑模式打开,单个视图关闭

在iOS13中UIViewControllerUIViewUIScreenUIWindow有一个overrideInterfaceStyle的新属性,可以覆盖系统的模式
self.overrideInterfaceStyle = UIUserInterfaceStyleLight;
如果想仅单个视图监听:
self.overrideInterfaceStyle = UIUserInterfaceStyleUnspecified;

Assets.xcassets

Assets.xcassets中配置不同模式下的图片

1.png

参考

https://www.fivestars.blog/code/ios-dark-mode-how-to.html

上一篇下一篇

猜你喜欢

热点阅读