Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UILabel用于填充框架宽度的文本_Swift_Uilabel_Sizetofit - Fatal编程技术网

Swift UILabel用于填充框架宽度的文本

Swift UILabel用于填充框架宽度的文本,swift,uilabel,sizetofit,Swift,Uilabel,Sizetofit,我想用UILabel制作印刷海报 左边距和边距:25 320(设备宽度)-50(页边距之和)=270(标签宽度框) 每个标签的字体大小应改变,以适应270帧宽度 我尝试使用sizeToFit(),调整ntsizetofitwidth=true var margin = 0; let label = UILabel(frame: CGRectMake(25 , 72, 270, 70)); label.backgroundColor = UIColor.clearColor(); label.

我想用UILabel制作印刷海报

  • 左边距和边距:25
  • 320(设备宽度)-50(页边距之和)=270(标签宽度框)
每个标签的字体大小应改变,以适应270帧宽度

我尝试使用sizeToFit()调整ntsizetofitwidth=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);
Label1和label2调整ntSizeToFitWidth=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);


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

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

根据苹果公司的文件

adjustsFontSizeToFitWidth是一个布尔值,指示 应减小字体大小,以便将标题字符串放入 标签的边框

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

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

资料来源:

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


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

label.adjustsFontSizeToFitWidth = true

adjustsFontSizeToFitWidth=true
时,字体大小将根据帧的不同而变化。这对你不管用吗?您尚未将其设置为
label2
无调整ntSizeToFitWidth无效。文本有一个左填充,并且不在25像素处加星号。还包括println(label.font);字体系列:“.HelveticaNeueInterface Regular”;字体大小:正常;字体风格:普通;字体大小:50.00p标签中的文本是否被剪裁?fontsize为50(如果合适)有什么问题?您已将
label
img设置为50-我希望文本从第一个灰色开始,第二个灰色结束border@EvenJohnson你不能把字体调大一点吗?label.font=UIFont.systemFontOfSize(30.0);label.text=“Some text”label.sizehattfits(CGSizeMake(270,40));label.sizeToFit();label.adjustsFontSizeToFitWidth=true;我不理解你的评论。你能解释一下吗?