iOS13适配简介
iOS 13系统开发者版本已经公布,公测版本会在7月份放出,正式版本会在9月份更新,9月份的正式版更新时间预计为苹果9月秋季发布会之后的一周内,按照往年的习惯,正式版的推送时间和新iPhone的发售时间是基本一致的,对于大多数的普通用户来说,9月份的正式版才可以获得iOS13的更新。
WWDC2019
Implementing Dark Mode on iOS
https://developer.apple.com/videos/play/wwdc2019/214/
文档
https://developer.apple.com/documentation/uikit/appearance_customization/adopting_ios_dark_mode?language=objc
视频流地址:
https://devstreaming-cdn.apple.com/videos/wwdc/2019/214iqtpuhih53fw2/214/hls_vod_mvp.m3u8
iOS13 darkmode 相关,主要有以下变化:
支持 Dark Mode
UIColor变为动态颜色
更新StatusBar样式
更新UIActivityIndicatorView样式
~PS: 2、3、4的变化主要还是support 1【dark mode】
相应的适配工作
一、Dark Mode 之颜色&图片适配 产品设计关注
颜色适配
iOS13系统提供了一些动态颜色
@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);
……
iOS13 之前 UIColor只能表示一种颜色,而从 iOS13 开始UIColor是一个动态的 颜色,在Light Mode和Dark Mode可以分别设置不同的颜色。
图片适配
原生适配,通过Assets.xcassets,选择设置不同Mode下的图片
读取当前mode,动态选择
...
WebContent适配(H5页面的修改)
通过CS适配 文字和图片;h5开发
...
二、支持强行设置App模式 产品设计了解
当系统设置为Light Mode时,对某些App的个别页面希望一直显示Dark Mode下的样式,这个时候就需要强行设置当前ViewController的模式了
self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;【忽略dark mode,最省事的办法】
developer pay attention
当我们强行设置当前viewController为Dark Mode后,这个viewController下的view都是Dark Mode
由这个ViewController present出的ViewController不会受到影响,依然跟随系统的模式
要想一键设置App下所有的ViewController都是Dark Mode,请直接在Window上执行overrideUserInterfaceStyle
对window.rootViewController强行设置Dark Mode也不会影响后续present出的ViewController的模式
三、当前模式(Light or Dark) 移动开发关注
四、dark mode 切换,监听
监听模式切换
CGColor适配
Xcode <模式切换时打印log> 设置
...
五、UIActivityIndicatorView
之前的 UIActivityIndicatorView 有三种 style 分别为 whiteLarge, white 和 gray,现在全部废弃。
增加两种 style 分别为 medium 和 large,指示器颜色用 color 属性修改。
六、其他补充
NSAttributedString优化 【使用系统提供的动态颜色】
###Content End--------------------------------