我在我的应用程序代理中使用以下代码设置了UILabel的外观:
UILabel.appearance().textColor = UIColor.white
我还有一个自定义的UIView子类,其中包含一个UILabel和一些其他元素(此处省略):
@IBDesignable
class CustomView: UIView {
private let descriptionLabel = HCLabel()
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func awakeFromNib() {
super.awakeFromNib()
self.setup()
}
private func setup() {
self.descriptionLabel.textColor = UIColor.black
// ... other things not related to descriptionLabel
}
}
如果我在storyboard中实例化
CustomView
,一切都很正常。但是,如果我在代码中实例化它,descriptionLabel将是白色(外观颜色),而不是黑色(我设置的颜色)。这里发生了什么?我的理解是,如果我设置了自定义颜色,外观颜色将不会被使用。
setup
是否被调用了吗? - rmaddyCustomView
不是使用故事板实例化的,而是通过编程方式实现的。 - BlackWolfdidMoveToSuperview
方法中调用setup。 - matt