我想确保按钮文本适合UIButton,而UIButton的大小是固定的.

当然,我可以访问UIButton的标题标签.

self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;

,但实际上表现不一样,因为它只会使文本在水平方向上符合边界,而不是垂直方向,因此不会更改字体大小.

如何以编程方式调整标签的字体大小,使文本符合标签边界(如下图中的Goal所示)?

adjustsFontSizeToFitWidth does not actually adjust the font size to fit the frame, only the width

我已经试过了

self.myButton.titleLabel.numberOfLines = 0;
self.myButton.titleLabel.minimumScaleFactor = 0.5f;

没有成功,总是以上图左侧的adjustsFontSizeToFitWidth结尾.

Edit: The solution also has to be ios7 compliant

推荐答案

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

... 在viewDidLoad中放置需要的位置后,执行了该技巧

Swift 3的更新:

mybutton.titleLabel?.minimumScaleFactor = 0.5
mybutton.titleLabel?.numberOfLines = 0   <-- Or to desired number of lines
mybutton.titleLabel?.adjustsFontSizeToFitWidth = true

Swift相关问答推荐

操作员如何点逻辑非(.!)在Swift工作?

为什么在Swift属性Wrapper中需要类型注释?

TabView中的视频播放器意外播放

RealityKit如何获得两个相对大小相同的ModelEntity?

如何在自定义视图中读取修改符子元素?

在SwiftUI中,我如何确保带有符号的单词不会被拆分为两行?

可以将属性名称传递给 Swift 中的函数吗?

从文字创建数组时的 Swift 宏

将每个枚举 case 与 Swift 中的一个类型相关联

为 ObservedObject 和 State 对象配置预览

如何使用带有 span 样式标签的 Swift XMLParser

供应和普通数组中具有空值的 map 函数的行为不一致?

将 struct 作为泛型类型传递并访问该泛型类型属性

响应 UITextField (UIViewRepresentable) 中的特定按键

使 Swift 并发中的任务串行运行

Swift:withCheckedContinuation 和 Dispatch QoSClass

如何使用 Date.ParseStrategy 在 Swift 5.6 中将字符串解析为日期?

在视图中设置所有变量

用 UIBezierPath 画一条线

将 [String] 存储在 NSUserDefaults 中