使字体大小适合封闭按钮?

时间:2019-02-17 16:45:53

标签: swift xcode uibutton

我的Xcode项目中有一些可以随着屏幕大小缩放的按钮。它们都是正方形。最初,当我将显示切换到iPad时,按钮可以正确缩放,但文本大小保持不变。然后,我添加了这些行,并将预设字体设置为适合iPad的大小。然后,字体将根据较小的设备缩小。但是,在较小的设备上,文本上方会有一个很大的空间。

button.titleLabel?.numberOfLines = 0;
button.titleLabel?.adjustsFontSizeToFitWidth = true;
button.titleLabel?.lineBreakMode = NSLineBreakMode.byClipping;

https://imgur.com/8KEiJxj ||您可以在顶部看到额外的填充。我希望文本大小正确(已完成),并且也要在按钮中间居中。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我将按钮标题的字体设置为非常大的字体,然后将最小字体比例设置为0.1或0.2。像这样:

let button = UIButton()
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 50) //for example
button.titleLabel?.minimumScaleFactor = 0.1
button.titleLabel?.numberOfLines = 1 // you don't want it to split into 2 rows, right?
button.titleLabel?.adjustsFontSizeToFitWidth = true

minimumScaleFactor 可以确保标签文本在按钮边框方面最大自动收缩,直到达到您设置的初始比例的10%。

更新

添加此行以使文本显示在中间:

button.titleLabel?.textAlignment = .center // or .justified (try it yourself)

尽管如此,您的图像仍然不清楚。什么是灰色区域?如果整个正方形是您的按钮,灰色是图像,则您需要注意文本似乎在正方形中间,从而得出结论,您的图像是错误的。它的孔不在文本应位于的中心。