2012-12-10 108 views
4

我有一個包含containerView(灰色)的視圖,其中包含UILabel(藍色)。當文本更改時,UILabel會縮小

enter image description here

我有佈局約束,使得containerView總是比在每一側上的標籤較大的8個像素,並且containerView邊界左/頂部/右是固定的。容器視圖在設備方向更改時適當延伸。

標籤的numberOfLines屬性設置爲0.我在代碼中設置標籤的文本。如預期的那樣,標籤的高度隨着文本的增長而增長。

問題出在這裏:當我將設備旋轉到橫向時,標籤的寬度會增大以適應屏幕的可用寬度,文本將適合2行。但是UILabel並沒有縮小其高度以緊貼文本。注意標籤文本上方和下方的額外空間。

enter image description here

那麼,如何使標籤的身高縮小與設備旋轉到緊貼周圍的文字?

我曾嘗試在viewWill/DidLayoutSubviews方法中調用[myLabel sizeToFit],但這沒有明顯的效果。

回答

0

檢查如果標籤上有指定固定高度的有約束:NSLog(@"%@", label.constraints);

0

步驟1:子類的UILabel。

第2步:將標籤的自定義類設置爲您的標籤子類。

第3步:在自定義班級中重寫-layoutSubviews

步驟4:在重寫的方法中,調用[self sizeToFit];

這爲我工作。