我希望将文字放在UILabel
中,但对于不同的iPhone,UILabel
的大小正在发生变化,因为我使用自动布局,但我无法修复字体大小,所以我的文字正在删除。
我有什么方法可以设置任何约束,以便文本动态地适应UILabel
?
See here the text got cut, because of different screen resolution
答案 0 :(得分:56)
您应该使用自动收缩。
由于所有iPhone在纵向模式下都具有相同的Compact width
尺寸等级,因此您不能依赖它来处理标签尺寸。
预览适用于iPhone5,iPhone6和iPhone 6 +
在检查器中,您必须在自动收缩前选择最小字体比例或最小字体大小。这使内容可以更改字体的大小以适合标签。
在这里,我将最小字体比例设置为0.5,因此最小尺寸是当前尺寸的一半(31.0)。文本将尝试适合,直到达到最小比例/大小。
(一般不要使用“收紧字母间距”。紧固字母间距使用相同的字体大小,减少字母之间的间距。它可以使标签在截断前最多缩小5%,但是当最小化时它无效字体比例/大小已启用。)
您可能希望使用宽屏设备(例如 iPad Pro )以及较小的屏幕(例如 iPhone 4S )进行测试。
自动收缩不会将字体大小调整为大于标签上设置的字体大小,这意味着如果您使标签与屏幕的宽度相同但将字体大小保留为 14 ,则会尝试增加字体大小,直到达到那个大小。
要使其真正有效,请选择大字体大小。
您仍然可以将自动收缩与大小类组合,以根据设备/方向更改最大字体大小。
如果您想将自动收缩与UIButton
一起使用,您仍然可以使用两行代码设置此行为。
myButton.titleLabel.minimumScaleFactor = 0.5;
myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
答案 1 :(得分:6)
答案 2 :(得分:6)