UILabel 不会调整大小

Posted

技术标签:

【中文标题】UILabel 不会调整大小【英文标题】:UILabel won't resize 【发布时间】:2014-08-22 13:31:39 【问题描述】:

我的视图中有 UILabel,它应该根据内容调整自身大小,但它没有这样做。我有多行内容。我试过[label sizeToFit] + label.numberOfLines= 0

我对 UILabel 没有限制。

我也尝试改用 UITextView,但字体只停留在 13,而不是我想要的 17。你能帮帮我吗?

这是现在可以使用的代码:

UILabel *textLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(20, 158, self.view.bounds.size.width-40, 550)];
textLabel2.text = textString;
textLabel2.font = [UIFont fontWithName:@"Helvetica Neue" size:17];
textLabel2.numberOfLines = 0;
[textLabel2 sizeToFit];
[self.scroller addSubview:textLabel2];

【问题讨论】:

看类似问题的答案-***.com/questions/5041874/… 【参考方案1】:

如果您以编程方式创建 UILabel

这段代码首先设置UIlabel的文字然后得到文字的宽度

UILabel *label = [[UILabel alloc] init];
//set label backgroundColor so you can see the label width changes according to text
[label setBackgroundColor:[UIColor redColor]];
//edit you label text
[label setText:@"very longgggg text"];

//get width of you text and set you font size to 17.0
CGFloat width =  [label.text sizeWithFont:[UIFont systemFontOfSize:17.0f]].width;

//set you label frame
label.frame = CGRectMake(10, 200, width, 30);

//add label to you view
[self.view addSubview:label];

如果您不是以编程方式创建 UILabel,请删除 alloc init 行并将您的出口连接到您的 xib 或情节提要。

【讨论】:

成功了!但我有一个问题!当我进入横向模式时,右侧有一个大洞。我怎样才能更新它,以便文本向右移动,就像我在 IB 中做一个约束,说 Trailing Space to Container? 好的,我现在以编程方式创建了 UILabel。我会将代码附加到问题中,以便您了解我的代码。我的问题是,当我在横向模式下使用应用程序时,我的文本直到整个宽度都不会出现,它在视图的大约 3/4 处结束。我怎样才能改变它,让它一直到视图结束?

以上是关于UILabel 不会调整大小的主要内容,如果未能解决你的问题,请参考以下文章

如何根据标签可用的高度调整 UILabel 字体大小

从 Nib 加载的 UITableViewCell 中的 UILabel 大小调整

如何调整 UIView 的大小以获取大量 UILabel 并调整 UILabel 的大小以适合文本?

UILabel 调整大小不起作用

调整 UILabel 字体大小以适合文本

根据内容调整 UILabel 大小