簡體   English   中英

調整UILabel字體大小,而不使用.adjustsFontForContentSizeCategory

[英]Adjust UILabel font size without .adjustsFontForContentSizeCategory

我有兩個UILabel,它們需要調整字體大小以適合文本(即在較小的舊設備中)。

使用.adjustsFontSizeToFitWidth屬性可以輕松解決此問題,但事實是,由於兩個UILabels彼此靠近並傳達相似的信息,因此我希望它們具有相同的字體大小(而adjustsFontSizeToFitWidth可以獨立調整它們)。

因此,我當時想做的就是以某種方式(這是我需要幫助的地方)計算兩個標簽的字體大小,並在兩個標簽上使用最小的字體。

圖片

有關如何執行此操作的任何想法? 兩個標簽都是多行(2行),並且它們始終具有相同的大小。

提前致謝。

您可以將.adjustsFontSizeToFitWidth屬性設置為true,獲得最小字體,然后比較兩個寬度,並將兩者的寬度都設置為最小。 偽代碼示例:

.adjustsFontSizeToFitWidth = true
var fontSizeOne = labelOne.fontSize
var fontSizeTwo = labelTwo.fontSize

if(fontSizeOne < fontSizeTwo)
  {
    labelTwo.fontSize = labelOne.fontSize
  }
else
  {
    labelOne.fontSize = labelTwo.fontSize
  }

您可以使用min函數使@Will的答案變得更短:

    labelOne.adjustsFontSizeToFitWidth = true 
    labelTwo.adjustFontSizeToFitWidth = true

    var fontSizeOne = labelOne.font.pointSize
    var fontSizeTwo = labelTwo.font.pointSize

    var min = min(fontSizeOne, fontSizeTwo)
    labelOne.font = UIFont.systemFont(ofSize: min))
    labelTwo.font = labelOne.font

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM