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

Posted

技术标签:

【中文标题】使字体大小适合封闭按钮?【英文标题】:Fitting Font Size to Enclosing Button? 【发布时间】:2019-02-17 16:45:53 【问题描述】:

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

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

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

【问题讨论】:

请提供示例项目或足够的信息给我们所有人复制。 【参考方案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)

虽然,你的形象如此模糊。什么是灰色地带?如果整个方块是您的按钮,而灰色是图像,那么您需要注意文本出现在方块的中间,这会导致您的图像错误的结论。它的洞不在文本应该在的中心。

【讨论】:

问题依然存在。文本大小正确调整,除了文本上方有一个巨大的空间,如图所示:imgur.com/8KEiJxj

以上是关于使字体大小适合封闭按钮?的主要内容,如果未能解决你的问题,请参考以下文章

调整字体大小以适合多个 UIButton,使它们都具有相同的字体大小

调整 UILabel 字体大小以适合文本

更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小变得更大

分配文本输入固定字体大小时,如何使文本输入和按钮具有相同的高度?

如何在 React Native for Android 中调整字体大小以适应视图?

更改字体大小而不弄乱 Tkinter 按钮大小