2015-12-03 35 views
0

我已經看到,UILabel內在尺寸似乎並不完全符合它包含的字符。使UILabel的高度,以適應其中包含的字符(自動佈局)

enter image description here

正如你可以在圖片中看到,標籤對頂部和底部一定的餘量。我可以使用基線(title.baseline == subtitle.top)使「字幕」更接近「TITLE」,但我也想將「TITLE」與其父頂對齊。

如果可能,我想使用自動佈局約束。

+0

字體的小寫字母下降到基線以下。內在的大小允許。 – picciano

+0

是的,我知道。我想用我正在使用的角色的「當前」固有尺寸,而不是任何可能的角色。由於我在那裏使用大寫字母,因此我知道我不會有小寫字母。 –

+0

我在這裏發佈了一個解決方案:http://stackoverflow.com/a/34073666/1121497 –

回答

1

快速修復

如果您的字體大小是固定的標籤,你可以嘗試繼承UILabel並覆蓋- (CGSize)intrinsicContentSize

-(CGSize)intrinsicContentSize { 
    CGSize intrinsicSize = [super intrinsicContentSize]; 
    intrinsicSize.height -= 8; // Works good for system font size 17.0 
    return intrinsicSize; 
} 

您可能需要使用intrinsicSize.height -= 8;發揮,從而獲得所需的輸出。

+0

謝謝。我想過這樣做。這是一個相當黑客,但... - p - 我希望它適用於任何字體,大小和字符。我將不得不考慮所有這些,並「煮」一個神奇的數字。 –

相關問題