我在如何根据标签文字调整标签高度时阅读了这个答案: 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标签的高度确实会调整。但是在文本的第一行/最后一行之前和之后有额外的间距。
这是我使用Spark捕获的屏幕截图。蓝色矩形是UILabel。如您所见,在第一行/最后一行之前/之后有额外的间距。如何删除这些间距?
答案 0 :(得分:1)
您无需在代码中执行任何操作即可使标签调整其高度。在xib或storyboard中,给出标签约束以设置其位置,并为其赋予固定的宽度约束。不要设置它的高度。将numberOfLines设置为0,这就是你需要做的。如果您使用太长而不适合一行的字符串设置文本,标签将自动调整其高度。