我有一个自定义UIView
类,其中UILabel
为子视图。我想在Interface Builder中设置标签的字体大小,因此我创建了一个计算属性fontSize
,用于获取和设置UILabel
字体的磅值。
@IBDesignable class UIMongolLabel: UIView {
private let view = UILabel()
let mongolFontName = "ChimeeWhiteMirrored" // font is always the same
@IBInspectable var fontSize: CGFloat {
get {
if let font = view.font {
return font.pointSize
} else {
return 0.0
}
}
set {
view.font = UIFont(name: mongolFontName, size: newValue)
}
}
// ...
}
如果用户为字体大小设置值,则此方法可以正常工作:
但是如果用户只是添加了一个新的自定义视图,则字体大小为空白。
The answers here说在Swift中有一个计算属性的默认值是没有意义的,但是如果我想要一个Interface Builder的默认值怎么办?我想说“17”或其他什么。我该怎么办?