我正在使用主题切换器构建应用,并且我想使用外观来切换具有默认颜色(黑色 - >白色)的UILabel的textColor
。
我认为这是可能的并且为非默认标签创建了子类,所以我只需要使用没有子类或保持默认颜色的UILabel。
当我使用以下内容更改外观时:
UILabel.appearance().textColor = UIColor.white
每个Label,包括子类和系统标签都变为白色,UIAppearance覆盖控件级自定义。我认为将UIAppearance作为默认状态以及在其上应用任何自定义都是有意义的。
有没有办法使用UIAppearance来解决这个问题?或者我是否必须手动编辑每个标签以添加子类和自定义属性?
感谢您的帮助!
答案 0 :(得分:0)
我发现克服这个问题的唯一方法是将textColor变量设为只读。但它的确有效:
UILabel.appearance().textColor = UIColor.orange
自定义类:
class MyLabel: UILabel {
override var textColor: UIColor! {
get { return UIColor.blue }
set {}
}
}