2013-07-04 18 views
3

我有這樣自動佈局:自動更新約束時,一些人認爲是空

_______________________________ 
|  |       | 
| Label 0      | 
| ^      | 
| Label 1      | 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 

^代表鏈接的Label X+1Label X底部頂部約束的視圖。 Label 0被固定常數限制在超視圖頂部。

我想實現的是:如果某些Label X爲空,則Label X+1必須取代它。

_______________________________ 
|  |       | 
| Label 0 (empty)    | 
| ^      | 
| Label 1      | 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 
       | 
       | The new layout 
       \/
_______________________________ 
|  |       | 
| Label 1      | (here it is also Label 0 but is empty) 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 

這是可能與自動佈局或我必須編程檢查空手動更新約束?免責聲明:如果這個問題聽起來非常基本,請原諒我,我正在從彈簧和支柱移植,現在它是一個相當cri cri的樣子。

+0

你真的做得很好,形成這個問題。 :)爲+1。 –

回答

1

當內容可見時是否需要更改?如果不這樣做:你可以在viewWillAppear方法中進行更新。對於每個標籤,請致電

[firstLabel setNumberOfLines:0]; 
[firstLabel setText:newProductTitleText]; 
[firstLabel sizeToFit]; 

將行數設置爲0可讓標籤動態地使用許多行,如其所需。如果這是一個實際上應該變爲0行的空標籤。這將更新幀和自動佈局應該照顧其餘的。

+0

標籤的高度爲0,但標籤的上邊距仍然保留。 –