0

我有一个多行 UILabel,我希望它在不同设备上看起来相似(仅限 iPhone)。如果它是单行,我只需放置自动布局约束并启用 Autoshrink 并设置最小字体比例。

标签的高度是动态的,是根据文本计算的。为此,我需要字体,它也应该是动态的。我可以做的 hack 是放置一个不可见的标签,然后将我想要的文本设置在一行中并计算字体,但这似乎太 hacky。

我不太熟悉的另一件事是尺寸等级。但是根据我的阅读,所有肖像共享同一个类,这意味着 3.5、4、4.7 和 5.5 英寸的设备将绑定到同一个类,因此我不能使用单独的字体值?

我将如何为多行标签实现“字体缩放”,以便在不同的屏幕尺寸上获得相似的外观?

4

1 回答 1

0

如果通过相似的外观您的意思是每行出现相同的单词,我认为这是不可能的。

如果标签高度是基于文本量的动态,则标签将简单地扩展到显示具有指定字体大小的文本所需的高度。

字体缩放仅在没有足够空间来显示具有指定字体大小的文本时才会启动。因此,您必须限制高度或行数。

我能够使用UILabel字体比例为 0.5 的多线来近似此值。我在它和它的父视图之间设置了一个 Equal Heights 约束,乘数为 0.25。请参阅下面的屏幕截图。

在这种方法中,您必须根据您拥有的文本量动态更改等高乘数。

于 2015-07-17T04:11:51.353 回答