苹果iOS13 新出了暗黑模式,我们在开发的时候应该如何去适配呢?下面简单说说如何适配吧!

在iOS13之前我的使用的UIColor就是普通的颜色,但是在iOS13开始UIColor就是一个动态的颜色了,会跟随系统的模式改变颜色

iOS 13系统提供了一些基本的动态颜色

@property (class, nonatomic, readonly) UIColor *systemBrownColor        API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *systemIndigoColor       API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *systemGray2Color        API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemGray3Color        API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemGray4Color        API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemGray5Color        API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemGray6Color        API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *labelColor              API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *secondaryLabelColor     API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *tertiaryLabelColor      API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *quaternaryLabelColor    API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *linkColor               API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *placeholderTextColor    API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *separatorColor          API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *opaqueSeparatorColor    API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
@property (class, nonatomic, readonly) UIColor *systemBackgroundColor                   API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *secondarySystemBackgroundColor          API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *tertiarySystemBackgroundColor           API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemGroupedBackgroundColor            API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *secondarySystemGroupedBackgroundColor   API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *tertiarySystemGroupedBackgroundColor    API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *systemFillColor                         API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *secondarySystemFillColor                API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *tertiarySystemFillColor                 API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos);
@property (class, nonatomic, readonly) UIColor *quaternarySystemFillColor

使用如下:

[self.view setBackgroundColor:[UIColor systemBackgroundColor]];
[self.titleLb setTextColor:[UIColor labelColor]];
[self.detailLb setTextColor:[UIColor placeholderTextColor]];

如果不想使用系统的,可以自定义符合自己开发需求的颜色,使用方法如下

+ (UIColor *)colorWithDynamicProvider:(UIColor * (^)(UITraitCollection *))dynamicProvider API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
- (UIColor *)initWithDynamicProvider:(UIColor * (^)(UITraitCollection *))dynamicProvider API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
  • 这两个方法要求传一个block进去 当系统在LightModeDarkMode之间相互切换时就会触发此回调
  • 这个block会返回一个UITraitCollection
  • 我们需要使用其属性userInterfaceStyle,它是一个枚举类型,会告诉我们当前是LightMode还是DarkMode

使用方法如下:

UIColor *bgColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trainCollection) {if ([trainCollection userInterfaceStyle] == UIUserInterfaceStyleLight) {return [UIColor redColor];}else {return [UIColor greenColor];}}];[self.View setBackgroundColor:bgColor];

是不是很简单啊,赶紧动手试试吧!

iOS 13 暗黑模式的适配相关推荐

  1. 苹果iOS 13暗黑模式概念图曝光 将于iOS 13.1版本更新

    iOS的暗黑模式一直是广大用户迫切关注的功能之一.此前在iOS 12发布之际,很多用户都非常期待苹果可以推出基于iOS的深色主题模式,网友们也将这种模式称为"暗黑模式".iOS 1 ...

  2. 苹果暗黑模式_爱了!苹果新增支持 iOS 13 暗黑模式

    ☀苹果资讯频道是微信里最热的.粉丝最多的苹果类公众号!这里苹果迷的聚集地!查苹果保修.查苹果序列号.查iPhone报价.苹果iPhone估价.买卖二手iPhone.iPhone回收.鉴别苹果山寨机.找 ...

  3. iOS制作暗黑模式教程

    0.前言 随着iOS13的普及,大多数的APP都已经适配了暗黑模式,网络上关于暗黑模式适配的文章也很多,基本看几篇就能解决掉iOS13暗黑模式的适配.我看了大部分的文章,基本都是对暗黑模式通用的介绍和 ...

  4. ios单应用模式_如何为iOS 13暗模式设置应用

    ios单应用模式 Apple launched the much-awaited iOS 13 updates globally on September 19 across all iPhones ...

  5. iOS 13.0 暗黑模式的适配

    一.暗黑模式的原理 将原本的资源文件,创建出两种不同的模式.根据不同的模式,自动获取该样式的资源. 每次切换系统模式的时候,系统会重新调用一些方法,重新赋值. 二.暗黑模式适配主要考虑的是: 1. 图 ...

  6. Android App Dark Theme(暗黑模式)适配指南

    在 2019 年的 Google I/O 和 Apple WWDC 上,新露面的 Android 10 和 iOS 13 都宣布将支持 Dark Theme 也就是我们常说的暗黑模式,并提供相关 AP ...

  7. Android App Dark Theme(暗黑模式)适配指南,android实战mysql

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2qd7l5a-1636430548017)(https://user-gold-cdn.xitu.io/2020/3/ ...

  8. js ios调用ios方法_通过iOS 13的模式演示调用生命周期方法

    js ios调用ios方法 iOS 13 was legendary iOS 13传奇 iOS 13 brought many cool things; dark mode, sign in with ...

  9. 苹果sf字体_苹果 iOS 13 黑暗模式设计指南

    苹果在 WWDC 大会上发布了黑暗模式,从 macOS Mojave 到 Google I/O 开发者大会来看,iOS 加入黑暗模式已经是一件可预期的事情了. 那么对于设计师来说,我们在设计黑暗模式的 ...

  10. IOS 禁用暗黑模式

    info中必须适配这两项才起作用

最新文章

  1. mysql 查询日志介绍
  2. grabcut.cpp:380: error: (-215) !bgdSamples.empty() !fgdSamples.empty() in function initGMMs
  3. [ZJOI2008]生日聚会Party
  4. 2. 动态分配字符串
  5. 根据当月数据库自动生成下个月数据库--3
  6. 03_zookeeper伪集群安装
  7. python123添加列表元素_Python之列表
  8. 955 加班少的公司名单!
  9. 解题报告:poj2689 Prime Distance
  10. 「译」创建一个Hexo主题-Part2:其他页面
  11. 教你如何认识各种光纤接口类型
  12. 模糊综合评价模型 ——确定隶属度
  13. 质量免费--读书笔记(上篇)
  14. 零基础该如何学好3D建模,学些什么,达到什么标准才能入行?
  15. 通过Cerebro访问Elasticsearch
  16. bluehost虚拟主机有什么用?适合做什么网站呢?
  17. windows如何取消电脑自动关机命令
  18. 数据分析Power BI案例:餐饮数据分析与可视化
  19. mysql grant select()_[MySQL] - MySQL的Grant命令
  20. SiTime 硅晶振与石英晶振的区别

热门文章

  1. [bzoj3223]Tyvj 1729 文艺平衡树
  2. Eclipse插件Mylyn管理上下文任务管理
  3. php笔记:抽奖概率算法
  4. DNN2(DotNetNuke2.0)的一些资源
  5. java编程思想--协变返回类型
  6. Unity.Interception(AOP)
  7. Java常用知识整理
  8. [转] Java/JSP中使用JDBC连接SQL Server 2005
  9. Python学习 :文件操作
  10. Java开发团队管理细则