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

Ios .xib文件中UITableViewCell中的UILabel忽略暗模式,ios,xcode,ios13,ios-darkmode,Ios,Xcode,Ios13,Ios Darkmode,我在.xib文件中有我的自定义UITableViewCells。由于Xcode 11 Beta 5(也使用Beta 6测试)我的UILabels忽略暗模式,文本始终为黑色。我已将UILabel文本颜色设置为默认值(标签颜色),因此应该会自动更改。有人知道怎么回事吗 下面是一个屏幕截图:第一个单元格是基本单元格,第二个是.xib文件中的自定义单元格 这里也有类似的问题。启用暗模式时,XIB中使用的某些动态颜色不使用其暗版本 这在模拟器和真实设备上都会发生。在Xcode(Interface Buil

我在
.xib
文件中有我的自定义
UITableViewCells
。由于Xcode 11 Beta 5(也使用Beta 6测试)我的
UILabels
忽略暗模式,文本始终为黑色。我已将
UILabel
文本颜色设置为默认值(标签颜色),因此应该会自动更改。有人知道怎么回事吗

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


这里也有类似的问题。启用暗模式时,XIB中使用的某些动态颜色不使用其暗版本

这在模拟器和真实设备上都会发生。在Xcode(Interface Builder)中模拟暗模式时,颜色确实正确显示


我的项目部署目标是iOS 10

这似乎是Xcode 11中的一个bug(在beta 7和GM Seed 1中进行了测试)-我已经通过反馈助手(FB7198213)向苹果提交了这个问题。问题出现在Xcode 11 GM Seed 2中

对于以前版本的Xcode 11,解决动态标签颜色错误行为的一个方法是在表视图单元格子类的
awakeFromNib()
中重新指定标签颜色。例如:

class TableCell:UITableViewCell{
@IBOutlet私有弱var标签:UILabel!
重写func awakeFromNib(){
super.awakeFromNib()
如果可用(iOS 13.0,*){
//标签的textColor在XIB编辑器中设置为secondaryLabel
//但我们在这里再次将其分配给secondaryLabel。这可以防止
//标签始终以其灯光模式变体显示的错误。
label.textColor=.secondaryLabel
}
}
}

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

Xcode 11中的XIB编辑器(在beta 7中测试)在编辑标签颜色方面似乎存在缺陷。当在XIB编辑器中将标签颜色设置为“标签颜色”(即使已设置为“标签颜色”)时,修改基础XML的方式会导致标签即使在暗模式下也显示为黑色。检查创建新标签与将标签颜色显式设置为“标签颜色”之间的XIB文件差异,可以看到差异

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


致:



请注意,
行已删除。手动添加此备份可修复标签在暗模式下的行为。

今天发布的Xcode 11 GM Seed 2似乎已修复此问题

发件人:

修正了系统颜色在XIB文件中设置为部署之前的问题 iOS 13.0无法适应运行时的系统外观。 (54362252)


@安德鲁·班纳特:这对我很有效。非常感谢。我必须在Objective-C中实现变通,因为我的应用程序的这一部分仍然在Objective-C中

- (void)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
        lblTitle.textColor = UIColor.secondaryLabelColor;
    }
}

我也有同样的问题,但它似乎扩展到了所有nib文件(不仅仅是UITableViewCells)。这也是你的经历吗?如果部署目标是iOS13,它可以正常工作,但如果将其降到iOS12,它将停止正常工作。奇怪的是,背景动态颜色工作正常,但标签颜色工作不正常。这对我实现黑暗模式有点阻碍…我的项目部署目标是iOS 11它看起来像iOS 13.1 Beta 3和iOS 13 GM修复了这个错误。我还将我的Xcode更新为11 GM。不再需要awakeFromNib调用。添加不会解决暗模式的问题。你也必须提供颜色。不,没有得到修复。连11.1都没有