iOS开发 DarkMode 暗黑模式

一、开发环境

Xcode11 正式版
iOS13 beta版本
Mac系统: 10.15 beta版本

二、适配原理

  • 将同一个资源,创建出两种模式的样式。系统根据当前选择的样式,自动获取该样式的资源。
  • 每次系统更新样式时,应用会调用当前所有存在的元素调用对应的一些重新方法,进行重绘视图,可以在对应的方法做相应的改动

三、资源适配

step1、颜色适配 通过 Assets 配置

在 iOS 11和 Xcode 9 中,我们可以在 Images.xcassets 中添加颜色。
现在我们可以为颜色再配置一个用于暗黑模式的对应的颜色。
在这里插入图片描述
我们可以选择 (原彩,深色) 或者 (原彩,深色,夜览)

step2、图片适配

打开Assets.xcassets,新建一个Image set,打开右侧工具栏,点击最后一栏,找到Appearances,同样可以选择 (原彩,深色) 或者 (原彩,深色,夜览),然后在对应的位置添加图片
在这里插入图片描述

四、代码适配

step1、UIColor 适配 语义化颜色介绍加代码展示

iOS13 之前 UIColor只能表示一种颜色,而从 iOS13 开始UIColor是一个动态的颜色,在Light Mode和Dark Mode可以分别设置不同的颜色。
iOS13系统提供了一些动态颜色。苹果引入了全新系统颜色和一套根据颜色使用目的而约定颜色命名的语义化颜色

#pragma mark - 语义化颜色
@property (class, nonatomic, readonly) UIColor *systemBrownColor        
@property (class, nonatomic, readonly) UIColor *systemIndigoColor       
@property (class, nonatomic, readonly) UIColor *systemGray2Color        
@property (class, nonatomic, readonly) UIColor *systemGray3Color        
@property (class, nonatomic, readonly) UIColor *systemGray4Color        
@property (class, nonatomic, readonly) UIColor *systemGray5Color        
@property (class, nonatomic, readonly) UIColor *systemGray6Color        
@property (class, nonatomic, readonly) UIColor *labelColor              
@property (class, nonatomic, readonly) UIColor *secondaryLabelColor     
@property (class, nonatomic, readonly) UIColor *tertiaryLabelColor      
@property (class, nonatomic, readonly) UIColor *quaternaryLabelColor    
@property (class, nonatomic
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值