0

我有一个被声明为 IBOutlet 的 UILabel。调用后sizeToFit,我仍然看不到整个文本,因为 UILabel 的大小没有变化。然后我做了一个检查_myLabel.frame,我发现高度实际上增加了,但它没有反映在视图中。我试图通过以编程方式插入 UILabel 来做同样的事情,并且sizeToFit似乎工作得很好。

[_myLabel setText:@"very very very long text"];
[_myLabel setNumberOfLines:0];
NSLog(@"%@", NSStringFromCGRect(_myLabel.frame));  //before sizeToFit
[_myLabel sizeToFit];
NSLog(@"%@", NSStringFromCGRect(_myLabel.frame));   //after sizeToFit

我怀疑它与自动布局有关。

4

2 回答 2

2

这是约束的问题。谢谢!

我通过清除约束来修复它并添加了这一行:

    _myLabel.preferredMaxLayoutWidth = [_myLabel alignmentRectForFrame:_myLabel.frame].size.width;

强制标签重新调整它的高度。

于 2013-06-23T12:35:02.857 回答
0

或者,子类化UILabel和覆盖sizeThatFits:来定义你的意思sizeToFit

于 2013-06-23T12:43:59.303 回答