独特的多线UILabel外观采用自动布局

时间:2015-07-16 19:21:32

标签: ios ios8 adaptive-layout

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

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

我不熟悉的另一件事是尺寸等级。但是从我所看到的,所有肖像之间共享相同的类,意味着3.5,4,4.7和5.5英寸设备将绑定到同一个类,因此我无法使用单独的字体值?

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

1 个答案:

答案 0 :(得分:0)

如果通过类似的表示你的意思是每行都出现相同的单词,我认为这是不可能的。

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

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

我能够使用字体比例为.5的多行UILabel来近似。我在它和它的superview之间设置了一个Equal Heights约束,乘数为.25。请参阅下面的屏幕截图。

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