2017-10-18 145 views
1

我在我的應用程序中有一種情況,可以給它的字體大小大於它的高度。這與一些相當複雜的架構和佈局代碼有關。通常情況下,我會增加標籤的高度以容納較大的字體,但這在我的場景中非常難以實現,我寧願避免它。當字體大小大於標籤高度時,防止UILabel剪切它的文本

下一個合乎邏輯的事情是關閉clipsToBounds,以允許文本子層溢出標籤的邊界。不幸的是,這種情況似乎沒有效果,因爲文本仍然被裁剪。

我錯過了什麼嗎?

+0

如何增加標籤的內容抗壓優先級? –

+0

您可能還需要檢查'label.layer.maskToBounds = false'也 – Wez

+0

期望的行爲是什麼? – Hexfire

回答

0

您應該能夠從font.lineHeight獲得字體高度,然後減小字體大小,直到行高小於標籤高度。

+0

問題是,文斯,我不想減少我的字體高度。我想讓字體變大,這更多的是我想增加標籤高度來適應它的情況。正如我在我的問題中所說的,在我的情況下,這很難做到。因此尋找一個基於層裁剪的解決方案。 –

+0

啊,我看到你不想增加標籤大小,但沒有看到你也不想減小字體大小。另一種可能性可能是將第二個標籤集中在現有標籤上,以便正確顯示文本並調整大小。這樣,原始標籤就成爲屏幕布局中的佔位符。 (如上所述) –

0

看爲的UILabel的文檔:我認爲你需要覆蓋的方法textRect(forBounds

https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect

:通過明確增加該方法返回到的含有尺寸矩形limitedToNumberOfLines :)標籤的字符串而不是標籤的邊界。

(此解決方案確實當然需要你的子類)。

希望有所幫助。

+0

這是一個有趣的想法,我會試試看! –

+0

因爲我使用AsyncDisplayKit並且標籤被封裝在具有抽象視圖的ASTextNode中,所以令人惱火的是,我沒有設備來繼承UILabel對象。 –

相關問題