【发布时间】:2018-07-05 18:14:58
【问题描述】:
我正在创建一个自定义 UILabel 类。原因是因为我想用Constants 类调整标签的属性。一旦应用程序的原色发生变化,在 IB 中修改属性就会变得很麻烦。无论如何,这是我的自定义 UILabel 类:
@IBDesignable class FormTitleLabel: UILabel {
override var font: UIFont! {
get {
return UIFont.systemFont(ofSize: 36, weight: .heavy)
} set {
super.font = font
}
}
}
这会导致标签出现截断:
我可以使用以下代码解决此问题:
@IBDesignable class FormTitleLabel: UILabel {
override var font: UIFont! {
get {
return UIFont.systemFont(ofSize: 36, weight: .heavy)
} set {
super.font = font
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
setup()
}
override func awakeFromNib() {
super.awakeFromNib()
setup()
}
private func setup() {
self.font = UIFont.systemFont(ofSize: 36)
}
}
为什么这个解决方案有效?
【问题讨论】:
-
什么是
Constants类? -
@RaffAl 在应用程序中定义全局常量的结构。例如“primaryColor”或“borderColor”。
-
出现在 IB 或设备中的什么地方
标签: ios swift uiview uilabel interface-builder