所有UILabel的默认文本颜色

我想为我的应用程序中的所有UILabel设置默认的文本颜色。 我find了这个:

UILabel.appearance().textColor = UIColor.red 

这是有效的,但是当我想为故事板中的特定标签设置其他颜色时,无法完成 – 所有标签仍然是红色的。

是否可以通过在故事板中设置所有UILabels来定义默认的文本颜色,然后在故事板中(而不是在代码中)对其中的一些UILabels进行更改? 或者使用外观API在代码中设置默认颜色,并更改故事板中的一些标签?

子类使用CustomLabel.swift标签。 您可以使用名为txtColor IBDesignable属性来设置文本颜色

以下是代码工作示例

 import UIKit @IBDesignable class CustomLabel: UILabel { @IBInspectable var txtColor: UIColor = UIColor.grayColor() { didSet { self.textColor = txtColor } } func setup() { self.textColor = txtColor } override func awakeFromNib() { setup() } override func prepareForInterfaceBuilder() { setup() } } 

穆罕默德所说的也有另一种select。 另一种方法是使用UIAppearance代理,但指定要应用的类。

在这种情况下,你可以像这样使用它:

 UILabel.appearanceWhenContainedInInstancesOfClasses([MyViewController.self, MyotherViewController.self]).textColor = UIColor.red 

上面虽然,只会允许你设置textColor你自己在一些类。 在代理被设置为启用的那些代码中,您将无法设置文本颜色。

您可以select哪种方法更适合您的情况