如何调整UIlabel

How to adjust UIlabel

我在如何根据标签文本调整标签高度中阅读了这个答案: Vertically align text to top within a UILabel

这是我的代码,试图同时设置新文本和调整标签。

但我发现标签的高度永远不会改变。它始终保持我在 xib 文件中设置的值。我使用工具 Spark 检查标签的高度:

-(void) setNewText(NSString *)newText
{
     self.myLabel.text = newText;
     self.myLabel.numberOfLines = 0;
     [self.myLabel sizeToFit];
     [self setNeedsLayout];
}

你能告诉我我的代码有什么问题吗?

谢谢。

已更新:

我已经尝试过@rdelmar 的建议。将标签的宽度约束和行数设置为 0。 ui 标签的高度确实得到了调整。但是文本的 first/last 行前后有额外的间距。

这是我使用 Spark 捕获的屏幕截图。蓝色矩形是 UILabel。如您所见,first/last 行有额外的间距 before/after。我怎样才能删除这些间距?

您无需在代码中执行任何操作即可让您的标签调整其高度。在xib或者storyboard中,给label约束来设置它的位置,给它一个固定宽度的约束。不要设置它的高度。将 numberOfLines 设置为 0,这就是您需要做的全部。如果您设置的文本太长而无法放在一行中,标签将自动调整其高度。