Swift 根据按钮高度设置标题标签
我的情况是,我想根据UIButton的高度设置UIButton元素的标题标签的字体大小,因此我的设置如下:Swift 根据按钮高度设置标题标签,swift,layout,uibutton,constraints,nslayoutconstraint,Swift,Layout,Uibutton,Constraints,Nslayoutconstraint,我的情况是,我想根据UIButton的高度设置UIButton元素的标题标签的字体大小,因此我的设置如下: let button: UIButton = { let button = UIButton() button.translatesAutoresizingMaskIntoConstraints = false button.setTitle("title", for: []) button.titleLabel?.minimumScaleFactor =
let button: UIButton = {
let button = UIButton()
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle("title", for: [])
button.titleLabel?.minimumScaleFactor = 0.5
button.titleLabel?.numberOfLines = 1
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.lineBreakMode = .byClipping
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(self.button)
self.button.bottomAnchor.constraint(equalTo: self.someElement.topAnchor, constant: 0).isActive = true
self.button.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.33).isActive = true
self.button.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.1).isActive = true
self.button.centerXAnchor.constraint(equalTo: self.view.centerXAnchor, constant: 0).isActive = true
}
会发生什么
按钮宽度设置为视图宽度的33%->good
按钮高度设置为视图高度的10%->良好
按钮标题标签字体大小保持较小且不随按钮高度缩放…->坏的
有人能给我解释一下吗?用按钮高度缩放标签的一个可能的解决方案是在
视图显示方法中调整字体大小。在那里而不是在viewDidLoad
中执行此操作非常重要,因为按钮高度在viewDidLoad
中尚不清楚
以下截取的代码应将按钮的字体大小缩放为按钮高度的一半:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// If you use a custom font, you have to replace systemFont with it
button.titleLabel?.font = UIFont.systemFont(ofSize: button.frame.height * 0.5)
}
但是,如果标题变得很长,它将缩小以适应按钮宽度(因为您已将adjustsFontSizeToFitWidth
设置为true)