暗模式不会在 Xcode 中切换到暗模式背景

Posted

技术标签:

【中文标题】暗模式不会在 Xcode 中切换到暗模式背景【英文标题】:Dark mode does not switch to a Dark mode background in Xcode 【发布时间】:2020-07-07 18:17:45 【问题描述】:

我已经为“Light/Dark Appearance”设置了不同的背景

但是当在 Xcode 中在 Light/Dark 模式之间切换时,我的背景总是使用来自“Any/Light Appearance”的图像。只有为图标设置的颜色会相应更改。

仅供参考:我正在使用 Interface Style 选项在 Light/Dark 模式之间切换。

有人可以建议我缺少什么吗?这对我来说都是新的。

【问题讨论】:

@matt 我正在关注在线培训,通过在 Main.storyboard 上切换 Interface Style 来显示此功能在 Xcode 中正常工作。只是不知怎的,我无法得到相同的结果。 尝试在设备上运行它。你在暗模式的设备上遇到同样的问题吗? @khush 除了在 Xcode 模拟器中构建之外,我无法访问任何设备 :( 我在做同样的课程,遇到同样的问题。我还克隆了完整的应用程序并遇到了同样的问题。将“渲染为”更改为“原始图像”对我没有任何影响。幸运的是,我有一台 iPad,我可以下载该应用程序并按预期工作 - 正确的图像在明暗模式下显示。它必须是 Xcode 中的(另一个)错误。继续学习——你没有做错任何事,你现在只需要发挥你的想象力。抱歉,在我获得 50 名声望之前,我无法对您的问题发表评论,但我希望这个答案可以帮助其他有同样问题的学生。 @RitchieLD 感谢您的反馈。很高兴知道我不是唯一一个遇到这个问题的人 :) 我仍在学习我的课程(我目前在 324)并且在某些章节中有更多的错误。 【参考方案1】:

我认为这是一个 Xcode 错误。您可以通过在 ios 模拟器中更改设置来确认。

转到设置 -> 开发人员 -> 深色外观

【讨论】:

这成功了!在模拟器上切换外观对应用程序背景产生了预期的影响(不同的背景图像用于不同的外观)。很高兴将其归类为另一个 ;) Xcode 错误。谢谢! 在哪里可以找到设置菜单?我只有 Xcode 中可用的“首选项” Nvm。知道了。当你说模拟器时,它让我失望。我应该知道您的意思是模拟器,因为在这种情况下,模拟器和模拟器的含义相同。对于所有阅读此评论的人,请转到 iPhone 模拟器中的设置 在 Xcode 12 Simulator 中,转到 Features -> Toggle Appearance (shift + command + A)。【参考方案2】:

我认为您可能需要取消选中 Resizing 复选框并将 Scales 属性设置为 Single Scale。它对我有用。

【讨论】:

嗯...如何进入该菜单?我的背景对象没有图像集选项卡.. 转到 Assests.xcassets 文件夹并单击您拥有的图像。然后在右侧窗格中,您可以取消选中“保留矢量数据”复选框。这将帮助您解决您的担忧。另外,请记住在构建和运行代码时选中此复选框,以免出现任何像素化。 谢谢!我刚刚测试过,实际上解决了我的问题。我仍然不明白为什么在启用此选项之前它无法正常工作。因此,您是说在我开发过程中但在实际构建之前取消勾选它只是为了测试目的?毕竟听起来像 Xcode 错误——因为我希望 Xcode 能够模仿实际的电话设备行为。无论如何感谢您的帮助!【参考方案3】:

将图像设置为原始图像

【讨论】:

在将 Render As 更改为 Original Image 后问题仍然存在。【参考方案4】:

我认为这是 Xcode(最新版本)的错误。

如果你在手机上运行它,你就不会遇到这个问题。意思是设置正确。

【讨论】:

【参考方案5】:

在模拟器中它工作正常。可以通过在模拟器的功能菜单中切换外观来确认。

【讨论】:

【参考方案6】:

这似乎是一个 Xcode 错误,但当您尝试在模拟器或物理设备上运行它时,假设您处于暗模式,它应该可以完美运行。

【讨论】:

【参考方案7】:

通过取消选中保留矢量数据选项1,可以在界面样式2切换模式时看到背景的变化。

但我注意到,如果您选择该选项并在模拟器上对其进行测试,它在那里工作得非常好。因此我觉得这也是一个 Xcode 错误。

【讨论】:

【参考方案8】:

Xcode Bug 还在,Xcode 故事板外观切换器不起作用,它只在模拟器中起作用。 您可以更改模拟器设备外观: 设置>开发者>深色外观。

编码愉快。

【讨论】:

【参考方案9】:

在我的物理设备上,iPhone 8 iOS 14.6 深色模式不起作用。切换到暗模式后不会调用 traitCollectionDidChange。 在我的 iPhone 12 iOS 15.x 和一些测试人员上它可以工作。 我试过的没有解决方案有效。我的 iPhone 8 上还有一些其他奇怪的 UI 错误。

希望它只是一个 Xcode 错误。

【讨论】:

以上是关于暗模式不会在 Xcode 中切换到暗模式背景的主要内容,如果未能解决你的问题,请参考以下文章

将 LocalStorage 添加到暗模式切换

Xcode 11 - SwiftUI 预览暗模式 [重复]

按钮在切换到暗/亮模式时更改 CSS 样式

页面重新加载后 Vuetify 暗模式颜色错误

如何在 Xamarin.Forms 中强制使用灯光模式?

获取明暗模式主题更改的更新