提问人:AVR 提问时间:11/29/2021 更新时间:11/29/2021 访问量:273
通过将文本设置为 UIButton 将按钮字体重置为默认值
By setting text to UIButton resets button font to default
问:
在我的代码中,我创建了一个自定义按钮(即 UIButton 的子类),但我无法为按钮设置字体。已经观察到,如果我使用它,它可以正常工作,但是每当我使用方法字体时,都会重置为系统字体。我需要该字体来表示按钮的所有状态,因此我必须使用该功能。我的自定义按钮代码如下self.titleLabel?.text = title
self.setTitle(title, for: .normal)
setTitle
class RoundedButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
styleButton()
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
styleButton()
}
func styleButton(title: String = "button", font: UIFont = .customFont16) {
self.setTitle(title, for: .normal)
self.backgroundColor = UIColor.yellow
titleLabel?.font = font
}
}
答:
0赞
Darshan
11/29/2021
#1
您可以添加一个变量来设置自定义类中的字体。然后从 viewController 设置字体。
var titleFont: UIFont = UIFont.preferredFont(forTextStyle: .footnote) {
didSet {
titleLabel?.font = titleFont
}
}
将上述代码添加到您的自定义类中,并在 viewController 中访问它,如下所示。
@IBOutlet weak var roundButton: RoundedButton!
override func viewDidLoad() {
super.viewDidLoad()
roundButton.titleFont = .caption1
}
评论
NSAttributedString