例如,我希望子类UIButton
并将其字体默认设置为20.0f
。我可以这样写:
@IBDesignable
class HCButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.customInit()
}
func customInit () {
titleLabel?.font = UIFont.systemFontOfSize(20)
}
}
但这不会影响 Interface Builder 中的预览,默认情况下,所有自定义按钮都会显示15.0f
字体大小。有什么想法吗?
答案 0 :(得分:4)
我已将新IBInspectable
创建为testFonts
:
import UIKit
@IBDesignable
class CustomButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
self.customInit()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.customInit()
}
func customInit () {
titleLabel?.font = UIFont.systemFontOfSize(20)
}
convenience init() {
self.init(frame:CGRectZero)
self.customInit()
}
override func awakeFromNib() {
super.awakeFromNib()
self.customInit()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self.customInit()
}
}
希望它可以帮助你:)
这对我有用。
答案 1 :(得分:0)
我认为你必须使用帧初始化器覆盖init以影响
override init(frame: CGRect) {
super.init(frame: frame)
self.customInit()
}
答案 2 :(得分:0)
EASIER:以下解决方案通常对我有用
import UIKit
@IBDesignable
class CustomButton: UIButton {
open override func layoutSubviews() {
super.layoutSubviews()
customInit()
}
func customInit () {
titleLabel?.font = UIFont.systemFontOfSize(20)
}
}
我希望这就是您想要的。