自动布局会在将AdjustsFontSizeToFitWidth与fixedNumberOfLines一起使用之前计算大小

时间:2018-12-06 10:01:02

标签: ios autolayout uilabel

adjustsFontSizeToFitWidth = true和您将numberOfLines设置为常数(我使用2)时,当“自动布局”计算UILabel的大小时,它会使用标签{{ 1}}属性,而不是布局时调整到的字体大小。当我增加字体大小时,标签框架的高度会增加,但是显示的字体大小将保持不变(因为它被限制为2行,并且其侧面固定在其超级视图中)。

我的骇人听闻的解决方案是以某种方式找到最大的字体大小,该字体大小将完全填满标签框架的宽度,同时仍然适合2行,然后将字体大小设置为该大小,以免自动缩小。

有没有一种方法可以告诉自动布局在计算大小之前缩小文本?

1 个答案:

答案 0 :(得分:0)

我以前见过类似的问题,基本的答案似乎是:

  

否,自动布局不会不会更改具有固定行数和UILabel的{​​{1}}的高度。

一种解决方法:

  • 不要为标签设置adjustsFontSizeToFitWidth = true
  • 创建具有相同约束的第二个隐藏标签,然后 do 设置adjustsFontSizeToFitWidth = true并设置adjustsFontSizeToFitWidth = true
  • 计算隐藏标签的实际,系统调整的字体大小,并使用该值设置可见标签的字体大小

示例:

.minimumScaleFactor