1

我在UITableViewCell中使用UILabel來顯示標題。通常情況下文本不會太長,因此字體可能很大。請注意文本如何填充正常情況下的UILabel的高度。UILabel高度取決於字體大小

enter image description here

然而,當有較大的冠軍,我希望UILabel高度降低,以適應較小的字體大小,而不是留在自己的位置空白的差距。目前,我的配置產生這種效果。

enter image description here

我用我的故事板的限制,並沒有刻意設置一個固定的高度約束。以下是相關的約束補充說:

enter image description here

我可以在我的配置已經取得了新秀錯誤,因爲我不記得這種效應發生之前,但它給了我一個真實的頭痛(和難看的UI )。

+0

根據其他子視圖的其他約束條件,您可以調整垂直內容擁抱優先級。在標籤上增加它。 – jervine10

+0

@ jervine10標題標籤擁有最高的垂直內容,優先於任何其他子視圖。 –

回答

0

UILabel設置爲自動調整字體大小以適合,它不會自動調整高度的自身

你有幾個選擇:

  1. 設定基線對齊中心,只是接受,你將有頂部和底部填充

  2. 使用代碼來計算的「縮放字體大小」和更新標籤的字體大小

0

刪除Top SpaceBottom Space約束條件(取決於您希望標籤錨定的位置)。

這將導致標籤自動適應文本大小本身。

+0

但是,我的表格視圖怎麼知道顯示行的高度呢? –

+0

您可以在代碼或Interface Builder中設置'rowHeight'。如果根據單元格的內容,每行需要不同的行高,可以使用UITableViewDelegate的['heightForRowAt:'](https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614998-tableview)方法' – Paolo

+0

我想使用我已配置的首選UITableViewAutomaticDimension。 –

0

試試這個,看,它應該根據自己的工作需要:

enter image description here

設置頂部和底部約束屬性Greater Than or Equal To並添加水平中心(下車中心y以上海華),並顯示該形象。

相關問題