我想确保按钮文本适合UIButton,而UIButton具有固定的大小。

当然,我可以访问UIButton的titleLabel。
在标签中,我将autoshrink设置为最小字体比例,该比例似乎与

self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;

,但实际上却没有相同的效果,因为它只能使文本在水平方向上适合边界,而不是垂直方向上,从而不会更改字体大小。

我如何才能实际通过编程方式调整标签的字体大小,以使文本适合标签范围(如下图所示目标中所示)?

ios - 调整文本的字体大小以适合UIButton-LMLPHP

我已经试过了
self.myButton.titleLabel.numberOfLines = 0;
self.myButton.titleLabel.minimumScaleFactor = 0.5f;

没有成功,总会像上图左侧的adjustsFontSizeToFitWidth一样结束。

编辑:该解决方案还必须与ios7兼容

最佳答案

self.mybutton.titleLabel.minimumScaleFactor = 0.5f;
self.mybutton.titleLabel.numberOfLines = 0;   <-- Or to desired number of lines
self.mybutton.titleLabel.adjustsFontSizeToFitWidth = YES;

...在viewDidLoad中的layoutIfNeeded之后完成了技巧
事实证明,必须将所有这些设置为实际调整字体大小,而不仅仅是使其适合框架。

Swift 3更新:
mybutton.titleLabel?.minimumScaleFactor = 0.5
mybutton.titleLabel?.numberOfLines = 0   <-- Or to desired number of lines
mybutton.titleLabel?.adjustsFontSizeToFitWidth = true

关于ios - 调整文本的字体大小以适合UIButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32561435/

10-14 16:18
查看更多