我有一个声明为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


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

最佳答案

这是约束的问题。谢谢!

我通过清除约束对其进行了修复,并添加了以下内容:

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


强制标签重新调整其高度。

关于ios - 调用sizeToFit后,UILabel在 View 中未调整大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17260629/

10-10 05:23