iOS 13 暗黑模式的适配
苹果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
进去 当系统在LightMode
和DarkMode
之间相互切换时就会触发此回调 - 这个
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 暗黑模式的适配相关推荐
- 苹果iOS 13暗黑模式概念图曝光 将于iOS 13.1版本更新
iOS的暗黑模式一直是广大用户迫切关注的功能之一.此前在iOS 12发布之际,很多用户都非常期待苹果可以推出基于iOS的深色主题模式,网友们也将这种模式称为"暗黑模式".iOS 1 ...
- 苹果暗黑模式_爱了!苹果新增支持 iOS 13 暗黑模式
☀苹果资讯频道是微信里最热的.粉丝最多的苹果类公众号!这里苹果迷的聚集地!查苹果保修.查苹果序列号.查iPhone报价.苹果iPhone估价.买卖二手iPhone.iPhone回收.鉴别苹果山寨机.找 ...
- iOS制作暗黑模式教程
0.前言 随着iOS13的普及,大多数的APP都已经适配了暗黑模式,网络上关于暗黑模式适配的文章也很多,基本看几篇就能解决掉iOS13暗黑模式的适配.我看了大部分的文章,基本都是对暗黑模式通用的介绍和 ...
- ios单应用模式_如何为iOS 13暗模式设置应用
ios单应用模式 Apple launched the much-awaited iOS 13 updates globally on September 19 across all iPhones ...
- iOS 13.0 暗黑模式的适配
一.暗黑模式的原理 将原本的资源文件,创建出两种不同的模式.根据不同的模式,自动获取该样式的资源. 每次切换系统模式的时候,系统会重新调用一些方法,重新赋值. 二.暗黑模式适配主要考虑的是: 1. 图 ...
- Android App Dark Theme(暗黑模式)适配指南
在 2019 年的 Google I/O 和 Apple WWDC 上,新露面的 Android 10 和 iOS 13 都宣布将支持 Dark Theme 也就是我们常说的暗黑模式,并提供相关 AP ...
- Android App Dark Theme(暗黑模式)适配指南,android实战mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2qd7l5a-1636430548017)(https://user-gold-cdn.xitu.io/2020/3/ ...
- 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 ...
- 苹果sf字体_苹果 iOS 13 黑暗模式设计指南
苹果在 WWDC 大会上发布了黑暗模式,从 macOS Mojave 到 Google I/O 开发者大会来看,iOS 加入黑暗模式已经是一件可预期的事情了. 那么对于设计师来说,我们在设计黑暗模式的 ...
- IOS 禁用暗黑模式
info中必须适配这两项才起作用
最新文章
- mysql 查询日志介绍
- grabcut.cpp:380: error: (-215) !bgdSamples.empty() !fgdSamples.empty() in function initGMMs
- [ZJOI2008]生日聚会Party
- 2. 动态分配字符串
- 根据当月数据库自动生成下个月数据库--3
- 03_zookeeper伪集群安装
- python123添加列表元素_Python之列表
- 955 加班少的公司名单!
- 解题报告:poj2689 Prime Distance
- 「译」创建一个Hexo主题-Part2:其他页面
- 教你如何认识各种光纤接口类型
- 模糊综合评价模型 ——确定隶属度
- 质量免费--读书笔记(上篇)
- 零基础该如何学好3D建模,学些什么,达到什么标准才能入行?
- 通过Cerebro访问Elasticsearch
- bluehost虚拟主机有什么用?适合做什么网站呢?
- windows如何取消电脑自动关机命令
- 数据分析Power BI案例:餐饮数据分析与可视化
- mysql grant select()_[MySQL] - MySQL的Grant命令
- SiTime 硅晶振与石英晶振的区别