ios - iOS 13 DarkMode 和 LaunchScreen - iOS 10 的后备
问题描述
我在白色背景的 launchscreen.storyboard 上有一个蓝色徽标。对于 iOS 13 引入的新 DarkMode,我喜欢反转颜色,即蓝色背景和白色徽标。
正如我们所知,这可以使用资产目录中的命名颜色来完成,这些颜色会根据设备的特性而变化。这在 iOS 11 及更高版本中运行良好,但在尝试支持 iOS 10 时显示此错误:
Named colors do not work prior to iOS 11.0.
我尝试在代码中为启动屏幕场景制作一个视图控制器,并使用该#ifavailable
子句在那里设置颜色,但编译器说启动屏幕可能没有与之关联的自定义类。
我还想过根据 iOS 版本使用不同的启动屏幕故事板,但我找不到任何关于如何使用的信息。
我能做些什么吗?如何解决这个问题呢?
谢谢,菲利克斯
解决方案
正如这里所建议的,解决方案是使用动态图像作为背景:
- 为浅色和深色模式创建 2 个平面颜色的图像。
- 将它们导入您的资产目录并定义“任何”/“深色”外观。
- 使用此图像在启动屏幕的背景中添加一个
UIImageView
(“缩放以填充”,限制在容器中)。
即使您的部署目标低于 iOS 11.0,它也会编译,并在启动时显示适当的颜色。
推荐阅读
- javascript - 如何将返回承诺的 redux-thunk 操作转换为使用 async/await?
- css - 如何为 fontawesome svg 图标添加阴影?
- ios - RxCocoa - 为什么 PublishRelay 没有 asDriver() 方法?
- ruby-on-rails - Rails-我无法在我的视图中隐藏条目记录
- javascript - 如何对对象数组中的特定选项求和?
- python - 在配置文件中使用字典而不是列表是一个坏习惯吗?
- python - 如何在 Kivy 中有更新时间
- asp.net - MS Access 数据库可以在调试模式下访问,但在发布时无法访问
- sql - SQL - 按最新合并重复行
- c# - 如何使用 .NET Core 依赖注入在运行时解析服务并注入额外的构造函数参数?