2013-06-23 65 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

相關問題