2016-03-29 41 views
0

我有一個自定義視圖,我在其中放置了一個UIImageView和一個UILabel。標籤的文本可以是任意大小,並且是動態設置的,所以我已將標籤的numOfLines設置爲0.無法將UILabel高度調整爲其文字高度

另外,我使用的是Autolayout。圖像視圖是我放置在標籤右側的圖標,我需要圖標和文本的頂部邊​​緣對齊(而不是標籤的頂部)。我已經嘗試了幾種方法來擺脫標籤及其文本之間的填充(sizeToFit,sizeThatFits),但沒有成功,我需要標籤的高度與文本的高度完全匹配以便能夠對齊頂部帶圖標的文字......我怎麼能達到這個目標?

+0

http://stackoverflow.com/questions/25180443/adjust-uilabel-height -到文本 – Ujjwal

回答

0

如果您想要在此情況下設置動態高度標籤,首先需要檢查storyboard/xib中該標籤的prefferedmaxwidth選項,然後設置uilabel約束。

順序的限制設置標籤: - 1.上 2.領先 3.尾隨

這將引發警告,如果不是需要你當前標籤的高度是不同的。 如果是這種情況,請爲此標籤選擇「更新框架」選項。

現在設置底部約束。

無需調用sizetofit方法。自動佈局將計算高度爲你

0

您可以通過更改標籤的高度約束,通過使用下面的代碼更改標籤的高度,

CGSize size = [@"your text" boundingRectWithSize:CGSizeMake(label.bounds.size.width, 10000) options:(NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : @"FontName"} context:nil].size; 

labelHeightConstraint = size.height;