我的Xcode项目中有一些可以随着屏幕大小缩放的按钮。它们都是正方形。最初,当我将显示切换到iPad时,按钮可以正确缩放,但文本大小保持不变。然后,我添加了这些行,并将预设字体设置为适合iPad的大小。然后,字体将根据较小的设备缩小。但是,在较小的设备上,文本上方会有一个很大的空间。
button.titleLabel?.numberOfLines = 0;
button.titleLabel?.adjustsFontSizeToFitWidth = true;
button.titleLabel?.lineBreakMode = NSLineBreakMode.byClipping;
https://imgur.com/8KEiJxj ||您可以在顶部看到额外的填充。我希望文本大小正确(已完成),并且也要在按钮中间居中。我该怎么办?
答案 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)
尽管如此,您的图像仍然不清楚。什么是灰色区域?如果整个正方形是您的按钮,灰色是图像,则您需要注意文本似乎在正方形中间,从而得出结论,您的图像是错误的。它的孔不在文本应位于的中心。