6

我想使用 UILabel 制作排版海报

  • 左边和边距:25
  • 320(设备宽度)- 50(边距之和)= 270(标签宽度框架)

每个标签的字体大小应更改以适应 270 帧宽度

我尝试使用sizeToFit()adjustsFontSizeToFitWidth=true

var margin = 0;
let label = UILabel(frame: CGRectMake(25 , 72, 270, 70));
label.backgroundColor = UIColor.clearColor();
label.textAlignment = NSTextAlignment.Left;
label.textColor = UIColor.blackColor();
label.numberOfLines = 1;
label.font = UIFont.systemFontOfSize(50.0);
label.text = "Some Text";
label.adjustsFontSizeToFitWidth = true;
self.view.addSubview(label);
margin += 60;

let label2 = UILabel(frame: CGRectMake(25 , CGFloat(72+margin), 270, 70));
label2.backgroundColor = UIColor.clearColor();
label2.textAlignment = NSTextAlignment.Left;
label2.textColor = UIColor.whiteColor();
label2.numberOfLines = 1;
label2.font = UIFont.boldSystemFontOfSize(45.0);
label2.text = "Some Text Longer";
self.view.addSubview(label2);

lable1和label2调整FontSizeToFitWidth=true时的截图

在此处输入图像描述

文本应从第一个灰色边框的末尾开始,并在第二个灰色边框的开头结束

4

2 回答 2

6

adjustsFontSizeToFitWidth不会增加标签中字体的大小以适应宽度。

根据苹果的文档,

adjustsFontSizeToFitWidth 是一个布尔值,指示是否应减小字体大小以使标题字符串适合标签的边界矩形。

通常,标签文本是使用您在字体属性中指定的字体绘制的。但是,如果此属性设置为 YES,并且 text 属性中的文本超出标签的边界矩形,则接收器开始减小字体大小,直到字符串适合或达到最小字体大小。在 iOS 6 及更早版本中,该属性仅在 numberOfLines 属性设置为 1 时有效。

您可以尝试增加字体的大小以适应框架的宽度。

来源:https ://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/sizeToFit

您还可以使用以下方法迭代地找到适合标签的最大尺寸。

如何调整标签的字体大小以适合矩形?

于 2015-01-16T12:59:34.073 回答
4

这应该可以在不更改许多默认值的情况下正常工作。发布的代码未设置adjustsFontSizeToFitWidth,如下所示:

label.adjustsFontSizeToFitWidth = true
于 2015-04-14T06:34:51.347 回答