【发布时间】:2020-03-14 00:25:09
【问题描述】:
在一个非常简单的单屏应用程序中,我有一个从屏幕左边缘到右边缘的单行 UILabel。 标签的文本在运行时动态更新。文本的长度各不相同,因为它包含一个 0...100 范围内的数字,而且我既没有使用等宽字体也没有使用前导零。
这是一个插图:
|<--------- Screen width --------------->|
|<----- UILabel "Some value = 0" ------->|
|<----- UILabel "Some value = 50" ------>|
|<----- UILabel "Some value = 100" ----->|
我希望标签始终使用任何设备的最大宽度(即屏幕尺寸)。这可以通过使用自动布局、合适的前导和尾随约束、大字体以及标签的“自动收缩”属性来实现。
问题是,这种方法会使字体大小也根据显示的值而变化,这不是我想要的。它应该只随着屏幕的宽度而变化,而不是随着标签文本的长度而变化。
在上面的示例中,值 0 使用大字体,50 使用中等字体,100 使用小字体。我希望它适应最坏情况 (100) 并使用结果大小之后的任何文本。
是否可以仅使用 Interface-Builder 属性和自动布局约束来实现这一点?
我可以想到如何在代码中计算大小的方法,但我认为必须有更简单的方法。
【问题讨论】:
标签: ios xcode autolayout interface-builder