【发布时间】:2015-03-16 02:52:40
【问题描述】:
我有一个通用应用程序,我使用故事板来约束一个按钮,以便从 iPhone 4 到 iPhone 6plus,大小将与设备的屏幕成比例。按钮的标题是数字“2”(屏幕上显示的都是可以按下的数字“2”)。出于某种原因,我无法弄清楚如何使用按钮大小自动调整字体大小,以使数字看起来与预期的屏幕成比例。 想法?
【问题讨论】:
标签: ios button text xcode6 autoresize
我有一个通用应用程序,我使用故事板来约束一个按钮,以便从 iPhone 4 到 iPhone 6plus,大小将与设备的屏幕成比例。按钮的标题是数字“2”(屏幕上显示的都是可以按下的数字“2”)。出于某种原因,我无法弄清楚如何使用按钮大小自动调整字体大小,以使数字看起来与预期的屏幕成比例。 想法?
【问题讨论】:
标签: ios button text xcode6 autoresize
仅使用界面生成器。您可以添加与按钮大小相同的 UILabel。删除您的按钮的标题。为 UILabel 设置文本。然后将 UILabel 的 AutoShrink 属性更改为“Minimum Font Scale”。但是您将无法更改不同状态的文本颜色。
使用代码来适应宽度。试试这个:
self.yourButton.titleLabel.adjustsFontSizeToFitWidth = YES;
self.yourButton.titleLabel.minimumScaleFactor = 0.5;
如果你想适应标题的高度。也许你必须自己计算高度。使用 [font lineHeight] 确保字体适合您的按钮。
【讨论】:
为您应用中的每个按钮调用此函数(例如来自 viewDidAppear):
func setAppropriateFontSize( butt:UIButton){
let maxFontSize = butt.frame.height
butt.titleLabel!.font = UIFont(name: "Helvetica", maxFontSize)
butt.titleLabel!.adjustsFontSizeToFitWidth = true
butt.titleLabel!.minimumScaleFactor = 0.01
}
在上面,maxFontSize 是文本仍然垂直适合按钮的最大字体大小。这个字体可能太大了,因此我们允许它缩小(adjustsFontSizeToFitWidth = true 表示我们允许字体缩小,因为它永远不会增加以适应宽度)。
【讨论】: