问题标签 [ios-darkmode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5804 浏览

objective-c - UITableView 中的自定义单元格在 iOS 13 暗模式下无法正常工作

自 2011 年以来,我一直在为我的医疗应用程序使用 Objective-C 代码,它基本上有 5 个带有关联 UITableViews 的选项卡,其中 3 个使用自定义单元格。最初使用暗模式时,我发现自定义单元格不会自动更改为暗模式。相反,我需要实现下面的代码来测试暗模式并相应地更改单元格文本和背景。

问题是第一个选项卡中的空单元格不会发生暗模式更改,填充单元格的上方或下方;它们仍然是空白的白色。但是,与第二个 2 个选项卡关联的 UITableViews 中类似的空单元格在暗模式下的行为与预期相同。

下面的示例图像显示了第一个和第三个选项卡显示的单元格。我现在想知道操作系统中是否存在错误,或者我是否没有实施适当的更改,以解释为什么暗模式仅在第一个选项卡中无法正常工作。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1124 浏览

swift - 为什么 iOS13 更改段落中的 NSAttributedString 中的字体系列

我的应用程序使用 NSAttributedString 向用户显示文本。大部分文本位于段落 HTML 标记 ( <p>) 内。当它在标签内时,字体系列将更改为某些 Times 样式。
它发生在新版本的 iOS 13 中,在我们没有遇到这个问题之前。

在此图像上,您可以看到正常字体和修改后的字体

标签:https://imgur.com/a/YY3Gdph

我们不知道从哪里开始寻找解决方案。

我希望看到标准的 iOS 字体。

0 投票
1 回答
1913 浏览

swift - 图像和暗模式不切换

在我的几个应用程序中,我有一张图片覆盖了背景中的视图。在我的资产目录中,我的图像有任何、浅色和深色的变化。在 iOS 13 中,当我启动应用程序时,会根据设置的模式显示正确的明暗模式图像。但是,当我在应用程序运行时切换模式时,图像不会改变。所有控件的所有其他属性都会更改(颜色等),但图像不会更改。我在 traitCollectiosnDidChange 块内使用 layoutIfNeeded() 和/或 layoutSubviews() 尝试了以下操作:

并且肯定会触发更改模式,但布局不会更改。有没有办法确保图像也显示正确的图像?

0 投票
1 回答
773 浏览

ios - iOS 13 暗模式:用于 NSAttributedString 时 UIColor.link 太暗

在 iOS 13 暗模式下,我UIColor.link用于两种情况:

  • foregroundColor 颜色为NSAttributedString
  • 图标的色调

问题:虽然我UIColor.link在这两种情况下都使用,但它们呈现为不同的颜色。渲染的NSAttributedString颜色更深,我发现这种颜色在黑色背景下很难阅读。

代码NSAttributedString

我在以编程方式实例化的 UIButton 子类中使用此属性字符串:

顶部的文本是UIButtonwith的子类的一个难以阅读的标签NSAttributedString,在底部,有一个易于阅读UIButton的图像和tintColor = UIColor.link

在此处输入图像描述

为什么会这样,我怎样才能获得相同的可读颜色NSAttributedString

0 投票
7 回答
80230 浏览

ios - 如何在模拟器 iOS 13 中使用暗模式?

在开发 iOS 应用程序时,我需要在模拟器中使用暗模式选项对其进行测试,以便更清楚地了解应用程序 UI。但是当我进入设置时,我没有得到暗模式选项作为真实设备显示。

0 投票
1 回答
162 浏览

ios13 - 暗模式和多窗口/场景

我正在尝试在多场景应用程序中实现 ios13 暗模式。

不幸的是,当我关闭一个将其拖过屏幕边缘的场景时,traitCollectionDidChange 方法会被多次调用,并且总是使用不同的值,导致我的 UI 在暗模式和亮模式之间闪烁。

怎么了?

这是我的实现

这是控制台中记录的语句

当新场景出现时...

当添加的场景消失时......

与此同时,我没有更改为暗模式(总是亮)......所以我希望只是主题没有改变。

0 投票
1 回答
430 浏览

ios - 评估 UITraitCollection 的 hasDifferentColorAppearance(comparedTo:) 结果

在我的应用程序中,当 iOS 系统暗模式设置更改时,我需要进行一些自定义 UI 更改。根据https://developer.apple.com/videos/play/wwdc2019/214/,明确提到traitCollectionDidChange使用hasDifferentColorAppearance(comparedTo:).

文档说:

使用此方法可以确定更改当前环境的特征是否也会更改界面中的颜色。例如,更改 userInterfaceStyle 或 accessibilityContrast 属性通常会更改界面的颜色。

在我的视图控制器的子类中,我实现了

但在某些情况下,两者isSameUserInterfaceStyleisSameAcessibilityContrast评估true我没想到 ifhasDifferentColorAppearance(comparedTo:)也会返回true。我不喜欢解决 Apple 建议的 API 用法,但另一方面,如果userInterfaceStyle没有实际更改,我不想对我的 UI 进行不必要的更改。所以我不确定我是否应该依赖的结果,或者仅比较两个特征集合hasDifferentColorAppearance(comparedTo:)是否就足够了。userInterfaceStyle

0 投票
3 回答
3420 浏览

react-native - 明智地在 React Native 中实现暗模式

我正在尝试为我的 React Native 应用程序添加暗模式支持。我将在 mobx 商店中设置一个标志,该标志mode将是lightdark适当的。

为了将其绑定到现有应用程序中,如果可能,我想保留现有样式定义并仅在需要时覆盖(而不是将所有内容重写为明暗主题)。

我想出了一个类似下面的函数来根据当前模式返回适当的样式:

视图将呈现为:

款式:

现在这可行,但我不确定它是否会带来一些我现在不知道的性能成本(函数的使用,使用样式对象而不是StyleSheet.create......),或者我是否有更简单的方法看不到树。我也不想对每个元素都进行三元内联。

0 投票
3 回答
8350 浏览

swiftui - 如何检测 iOS 13 中的 Light\Dark 模式变化?

某些 UI 设置无法自动使用暗/亮模式更改为UIColor. 例如shadow在层中。由于我需要在深色和浅色模式下移除和放置阴影,因此我需要在某个地方放置updateShadowIfNeeded()功能。我知道如何检测当前的模式:

现在我把函数放在里面layoutSubviews,因为每次外观改变时都会调用它:

但是这个函数被称为A LOT。只有在userInterfaceStyle更改时才触发的正确功能是什么?

0 投票
2 回答
692 浏览

uicolor - iOS13:如何在资产目录中为提升的用户界面级别指定颜色

iOS 13 给我们带来了UIUserInterfaceLevel,可以是.base或者.elevatedUIView当在暗模式下使用升高的级别时,系统似乎会自动调整提供的颜色。

但是,似乎没有办法在资产目录中.elevated手动指定颜色,或者是吗?

唯一的方法似乎是通过新的 UIColor 构造函数