我的问题很简单。是否有办法像设置UILabel
一样轻松地为UIButton
设置最小字号?
我的问题很简单。是否有办法像设置UILabel
一样轻松地为UIButton
设置最小字号?
button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = NSLineBreakByClipping;
Anoop的答案非常好用。您也可以在IB中使用用户定义的运行时属性来完成此操作:
- 在IB中选择按钮
- 添加属性
- 键路径:titleLabel.adjustsFontSizeToFitWidth
- 类型:布尔值
- 值:true
来自IB的截图
设置最小字号在iOS8中不可用,请使用minimumscalefactor代替。
在Swift 4/5中
请确保yourBtn在@IBoutLet中可用,而不是在viewdidLoad或viewWillAppear的action中
override func viewDidLoad() {
super.viewDidLoad()
yourBtn.titleLabel?.numberOfLines = 1
yourBtn.titleLabel?.adjustsFontSizeToFitWidth = true
yourBtn.titleLabel?.lineBreakMode = NSLineBreakMode.byClipping
}
Teetz的答案非常有效。如果您想在UIButton的titleLabel边缘之间添加边距,以便在adjustsFontSizeToFitWidth之后,您可以在第一个字符之前和最后一个字符之后添加几个空格。这样看起来更整洁。
针对Swift 5.0版本
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
YourButton.titleLabel?.numberOfLines = 1
YourButton.titleLabel?.adjustsFontSizeToFitWidth = true
}
adjustsFontSizeToFitWidth = YES;
这样做。 - Anoop Vaidya