如何dynamic更改自动布局iOS中的字体大小?
我想适合我的文字在一个UILabel
,但对于不同的iPhone UILabel
的大小正在改变,因为我使用自动布局,但我不能修复字体大小,所以我的文字被删除。
有什么办法可以设置任何约束,以便文本dynamic适应UILabel
?
由于不同的屏幕分辨率,在这里看到的文字被削减
你应该使用自动收缩 。
由于所有iPhone在纵向模式下都具有相同的Compact width
尺寸,所以不能依靠这个来处理标签尺寸。
预览适用于iPhone5,iPhone6和iPhone 6+
在检查员中,您必须在Autoshrink前面select最小字体比例或最小字体大小。 这使内容能够改变字体的大小以适应标签。
在这里,我将最小字体大小设置为0,5,所以最小大小是当前大小的一半(31.0) 。 文本将尝试调整,直到达到最小的比例/大小。
(一般不要使用“拧紧字母间距”,拧紧字母间距使用相同的字体大小,缩小字母之间的间距,截断前可以将标签的大小从2%缩小到5%,但最小字体大小/大小已启用。)
您可能需要使用iPad Pro等宽屏设备进行testing,也可以在iPhone 4S等较小的屏幕上进行testing。
Autoshrink将不会调整比标签上设置的字体大的字体,这意味着如果您将标签设置为与屏幕相同的宽度,但将字体大小设置为14 ,则会尝试增加字体大小,直到达到该大小。
为了使其实际工作,select一个大的字体大小。
您仍然可以将autoshrink与大小类别结合使用,以根据设备/方向更改最大字体大小。
如果你想使用UIButton
的autoshrink ,你仍然可以用两行代码来设置这个行为。
myButton.titleLabel.minimumScaleFactor = 0.5; myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
你可以通过使用大小类来做到这一点。 每个显示尺寸使用一个尺寸等级,这将导致四个抽象设备:规则宽度 – 规则高度,规则宽度 – 紧凑高度,紧凑宽度 – 规则高度和紧凑宽度 – 紧凑高度。 下表显示了iOS设备及其相应的大小类别。 
要设置这个特定大小的字体大小,首先selectUILabel
。 在“属性”检查器下,您应该在字体字段旁边看到一个加号(+)button。 单击+button并select紧凑宽度>常规高度(或根据您的要求select宽度和高度)。 然后,您将看到一个新的字体选项条目,专用于该特定的大小类。 保持原始字体选项的大小不变,但将wC hR(或根据您的select)字体字段的大小更改为所需的点(例如14)。
嗨,如果你从故事板添加UILabel你可以设置不同的字体为所有可用的布局。