仅更改默认UILabels的UIA外观

我正在构建一个带有主题切换器的应用程序,并且我想使用外观来切换具有默认颜色(黑色 - >白色)的UILabels的textColor

我认为这将是可能的,并创建非默认标签的子类,所以我只需要将UILabel设置为无子类或保留默认颜色。

当我改变以下的外观:

UILabel.appearance().textColor = UIColor.white

每个标签,包括子类和系统标签都变成白色,UIA外观覆盖控制级定制。 我觉得UIAppearance是默认状态,任何定制都可以应用于其上。

有没有办法使用UIAppearance来解决这个问题? 或者我必须手动编辑每个标签,我必须添加一个子类和一个自定义属性?

谢谢你的帮助!


我发现克服这个问题的唯一方法是让textColor变量只读。 但它的作品:

UILabel.appearance().textColor = UIColor.orange

自定义类:

class MyLabel: UILabel {
    override var textColor: UIColor! {
        get { return UIColor.blue }
        set {}
    }
}
链接地址: http://www.djcxy.com/p/96245.html

上一篇: Change UIAppearance of default UILabels only

下一篇: Changing UILabel text but keeping the rest of the attributes