我想使用UILabel
制作排版海报每个标签的字体大小应该更改,以适合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的屏幕截图 adjustsFontSizeToFitWidth = true
文本应从第一个灰色边框的末尾开始,并在第二个灰色边框的开头结束
答案 0 :(得分:6)
adjustsFontSizeToFitWidth
不会增加标签中字体的大小以适应宽度。
根据Apple的文档,
adjustsFontSizeToFitWidth是一个布尔值,表示是否 字体大小应该减少,以使标题字符串适合 标签的边界矩形。
通常,标签文本使用您在中指定的字体绘制 字体属性。但是,如果此属性设置为YES,则为文本 在text属性中超出了标签的边界矩形 接收器开始减小字体大小,直到字符串适合或 达到最小字体大小。在iOS 6及更早版本中,此属性为 仅当numberOfLines属性设置为1时才有效。
您可以尝试增加字体的大小以适应框架的宽度。
您还可以使用以下方法迭代查找适合标签的最大尺寸。
答案 1 :(得分:4)
这应该可以在不改变许多默认值的情况下工作。发布的代码未设置adjustsFontSizeToFitWidth
,如下所示:
label.adjustsFontSizeToFitWidth = true