iOS—暗黑模式

2020-04-03  本文已影响0人  如hua

从iOS13推出以后,暗黑模式难免成为一个热点的话题,特别是微信新版本更新支持暗黑模式以后,相信iOS开发者都有必要掌握如何在自己的项目中支持它。

适配暗黑模式主要从以下几个方面着手:

1、颜色适配

自定义动态UIColor

iOS13 UIColor增加了两个初始化方法,使用以下方法可以创建动态UIColor

注:一个是类方法,一个是实例方法


+(UIColor*)colorWithDynamicProvider:(UIColor*(^)(UITraitCollection*))dynamicProviderAPI_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);
-(UIColor*)initWithDynamicProvider:(UIColor*(^)(UITraitCollection*))dynamicProviderAPI_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);

使用方法

        label.textColor=UIColor.init(dynamicProvider: { (trait) ->UIColor **in**

            **if **trait.userInterfaceStyle== .light {

                **return **UIColor.black

            }

            **return **UIColor.white

        })


        self.view.backgroundColor=UIColor.init(dynamicProvider: { (trait) ->UIColor in

            if trait.userInterfaceStyle== .dark {

                returnUIColor.black

            }

            **return**UIColor.white

        })

效果
image image

2、图片适配

image

*使用该图片


[_logoImage setImage:[UIImage imageNamed:@"icon_logo"]];

image image

获取当前系统模式

如果需要知道当前处于什么模式,并根据不同的模式执行不同的操作,iOS13中CGColor依然只能表示单一的颜色,通过调用UITraitCollection.currentTraitCollection.userInterfaceStyle,获取当前模式


      if UITraitCollection.current.userInterfaceStyle == .dark {

          print("当前为深色模式")

      }else{

          print("当前为浅色模式")

      }

希望对您有所帮助。

上一篇下一篇

猜你喜欢

热点阅读