我在我的應用程序中有一種情況,可以給它的字體大小大於它的高度。這與一些相當複雜的架構和佈局代碼有關。通常情況下,我會增加標籤的高度以容納較大的字體,但這在我的場景中非常難以實現,我寧願避免它。當字體大小大於標籤高度時,防止UILabel剪切它的文本
下一個合乎邏輯的事情是關閉clipsToBounds
,以允許文本子層溢出標籤的邊界。不幸的是,這種情況似乎沒有效果,因爲文本仍然被裁剪。
我錯過了什麼嗎?
我在我的應用程序中有一種情況,可以給它的字體大小大於它的高度。這與一些相當複雜的架構和佈局代碼有關。通常情況下,我會增加標籤的高度以容納較大的字體,但這在我的場景中非常難以實現,我寧願避免它。當字體大小大於標籤高度時,防止UILabel剪切它的文本
下一個合乎邏輯的事情是關閉clipsToBounds
,以允許文本子層溢出標籤的邊界。不幸的是,這種情況似乎沒有效果,因爲文本仍然被裁剪。
我錯過了什麼嗎?
您應該能夠從font.lineHeight
獲得字體高度,然後減小字體大小,直到行高小於標籤高度。
問題是,文斯,我不想減少我的字體高度。我想讓字體變大,這更多的是我想增加標籤高度來適應它的情況。正如我在我的問題中所說的,在我的情況下,這很難做到。因此尋找一個基於層裁剪的解決方案。 –
啊,我看到你不想增加標籤大小,但沒有看到你也不想減小字體大小。另一種可能性可能是將第二個標籤集中在現有標籤上,以便正確顯示文本並調整大小。這樣,原始標籤就成爲屏幕布局中的佔位符。 (如上所述) –
看爲的UILabel的文檔:我認爲你需要覆蓋的方法textRect(forBounds
https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect
:通過明確增加該方法返回到的含有尺寸矩形limitedToNumberOfLines :)標籤的字符串而不是標籤的邊界。
(此解決方案確實當然需要你的子類)。
希望有所幫助。
這是一個有趣的想法,我會試試看! –
因爲我使用AsyncDisplayKit並且標籤被封裝在具有抽象視圖的ASTextNode中,所以令人惱火的是,我沒有設備來繼承UILabel對象。 –
如何增加標籤的內容抗壓優先級? –
您可能還需要檢查'label.layer.maskToBounds = false'也 – Wez
期望的行爲是什麼? – Hexfire