gpt4 book ai didi

ios - .xib 文件中 UITableViewCell 中的 UILabel 忽略暗模式

转载 作者:可可西里 更新时间:2023-11-01 03:12:11 26 4
gpt4 key购买 nike

我在 .xib 文件中有我的自定义 UITableViewCells。由于 Xcode 11 Beta 5(也使用 Beta 6 进行了测试),我的 UILabels 忽略了深色模式并且文本始终为黑色。我已将 UILabel 文本颜色设置为默认(标签颜色),因此它应该会自动更改。有谁知道哪里出了问题?

这是一个屏幕截图:第一个单元格是基本单元格,第二个单元格是 .xib 文件中的自定义单元格。

enter image description here

最佳答案

这似乎是 Xcode 11 中的一个错误(在 beta 7 和 GM Seed 1 中测试过)——我已经通过反馈助手 (FB7198213) 向 Apple 提交了这个问题。问题是 fixed在 Xcode 11 GM 种子 2 中。

对于以前版本的 Xcode 11,动态标签颜色不正确行为的解决方法是在 awakeFromNib() 中重新分配标签颜色。在 TableView 单元格子类中。例如:

class TableCell: UITableViewCell {

@IBOutlet private weak var label: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
if #available(iOS 13.0, *) {
// The label's textColor was set to secondaryLabel in the XIB editor
// but we reassign it to secondaryLabel again here. This prevents
// a bug where the label always appears in its light mode variant.
label.textColor = .secondaryLabel
}
}
}

原始答案:此原始答案仅解决默认(即主要)标签颜色的问题

Xcode 11(在 beta 7 中测试)的 XIB 编辑器 中似乎存在关于编辑标签颜色的错误。当在 XIB 编辑器中将标签颜色设置为“标签颜色”(即使它已经设置为该颜色)时,底层 XML 的修改方式会导致标签即使在暗模式下也显示为黑色。检查 XIB 文件在创建新标签和将该标签的颜色明确设置为“标签颜色”之后的差异,可以看出差异。

对于我的简单示例,XIB 文件的 XML 来自:

<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VKH-gX-gtO">
<rect key="frame" x="20" y="15" width="71" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>

到:

<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VKH-gX-gtO">
<rect key="frame" x="20" y="15" width="71" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="highlightedColor"/>
</label>

请注意 <nil key="textColor"/> 行去掉了。手动添加此选项可修复暗模式下标签的行为。

关于ios - .xib 文件中 UITableViewCell 中的 UILabel 忽略暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com