iOS13系统适配暗黑模式调研总结

 

背景:iOS13系统提供了暗黑模式,公司各业务线App打算尝试适配iOS13系统暗黑模式。

 

一、关于图片的适配:

1、本地图片适配:Assets中设置(Any,Dark)类型,可设置两种模式下分别需要显示的图片(可兼容iOS低版本系统)。
2、网络图片适配:设计人员出图需考虑同时兼容暗黑模式和正常模式(需出一套图,对应两种模式),不建议出两套图。

二、关于颜色的适配:
UIColor适配:
1、hook UIColor的方法,达到统一动态适配相关颜色。需要设计人员出规范,按照规范做映射转换。
2、封装分别设置两种模式下颜色的API,在需要的地方单独设置。需要开发人员针对性修改。

CGColor适配(layer的适配):
UIColor切换模式时有回调,但是CGColor没有,目前只能在traitCollectionDidChange监听方法中重新设置CGColor。(方案待定)

NSAttributedString富文本的适配,包括UITextField的placeHolder问题等。

三、状态栏style的变更

由于状态栏style类型有变化,所以,页面有关于状态栏设置的需要适配。(我们项目基类Controller中根据接口返回的动态配置数据需要重点关注)。

四、关于xib文件的适配

由于项目中有xib文件,有些地方需要用代码单独适配,并考虑低版本系统兼容性问题。

五、UIActivityIndicatorView样式有变更

项目中有用到UIActivityIndicatorView的地方需要适配。

六、RN代码的适配

RN代码需要RN团队关注适配方案。

 

总结:对于设计人员,需要提供一套设计规范,作为底层颜色自动转换的映射表。对于iOS团队来说,采用底层hook UIColor等相关API的方案,可以很快做到颜色转换来适配暗黑色模式。但是,有些颜色是需要单独配置的,不能完全遵循底层的颜色转换,所以,每个页面都需要设计人员验收,自动转换的颜色是否符合整体页面的UI效果,如果有变动,尽量给出一份暗黑模式的标注图,然后开发团队再做单独配置。所以,对于设计人员和iOS开发团队需要适配的工作量还是蛮大的。目前做到暗黑色适配的App有网易新闻、喜马拉雅、知乎,大家可以下载参考实现方案。

 

你可能感兴趣的:(OC)