2013-06-23 34 views
0

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

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

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

+0

'[_myLabel setFrame:_descriptionLabel.frame]'应该在那里做什么? – yonosoytu

+0

对不起,我感到困惑。我删除了该行,它不应该在那里。 – tommi

+0

你在哪里调用视图控制器中的sizeToFit,例如viewDidLoad等? –

回答

2

这是一个约束问题。谢谢!

我固定它通过清除约束和补充这一行:

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

迫使标签重新调整它的高度。

0

或子类UILabel并覆盖sizeThatFits:以定义您的意思是sizeToFit

相关问题