自动调整不同设备字体大小的最佳方法?
Posted
技术标签:
【中文标题】自动调整不同设备字体大小的最佳方法?【英文标题】:Best way to resize font sizes for different devices automatically? 【发布时间】:2018-10-22 00:35:24 【问题描述】:所以,我的应用程序中有很多标签,并且像所有东西一样,它们具有自动布局,而且效果很好,但对于其中的文本。标签布局符合预期,但其中的文本在较小的设备中被剪切。
为避免这种情况,我尝试在界面构建中使用 AutoShrink 选项,但正如您在图片中看到的那样,它真的很乱:
iPhone 7 simulation without AutoShrink
iPhone SE simulation without AutoShrink
iPhone SE simulation with AutoShrink
因此,如您所见,所有标签的收缩程度都不同,导致不同大小的文本破坏了 App Harmony 和设计。
处理这种情况的最佳方法是什么?如果我需要缩小一个标签,如何使它们都缩小到相同的尺寸?
【问题讨论】:
这可能有点矫枉过正,但在过去的两个月里,“Swift Talk”一直在构建一个表单库。 talk.objc.io/episodes/S01E118-introduction-prototype我认为这一集是免费的——其他的都是免费的——但我喜欢他们正在做的事情。这个想法不是一直更改字体大小,而是在(a)您没有屏幕空间或(b)用户需要更大的字体大小(例如动态类型)时更改布局。除非这样?事情的代码,很快就会变得混乱。 【参考方案1】:你可以使用adjustsFontSizeToFitWidth和minimumScaleFactor:
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.5
这会为长字符串创建一个较小的文本。
您还可以使用numberOfLines为标签添加更多行。 我认为第一个解决方案对你更好。
【讨论】:
以上是关于自动调整不同设备字体大小的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章