2017-07-07 35 views
0

我在堆棧視圖中有一個標籤,它顯示各種不同的文本,但是當它顯示p和g時,底部會被截斷,如您在此處看到的。用p和g等字母標註文本的垂直截取

enter image description here

有什麼辦法防止這種情況?

更新:我需要我的標籤的大小保持不變,而更改標籤的字體大小。

回答

0

你可以嘗試添加

label.minimumScaleFactor = 0.5 
      OR 
label.adjustsFontSizeToFitWidth = true 

到標籤

這似乎只適用於寬度不足,但不是高度

試試這個。它應該做的伎倆

extension UILabel { 

override open func layoutSubviews() { 
    super.layoutSubviews() 
    while self.font.pointSize > 1 { 
     //check the contentSize, if it's less then the actual label height then it should fit 
     //else change the font size 
     if self.intrinsicContentSize.height < self.frame.size.height { 
      break 
     } 
     self.font = self.font.withSize(font.pointSize - 1) 
    } 
} 

} 
+0

這不工作由於某種原因我以前測試過,它導致同樣的事情發生 – joshLor

+0

我改變字體解決了問題 – Obarg

0

爲了確保您的標籤始終足夠大以容納內容,您需要在設置文本後每次調用sizeToFit()

下面是示例代碼

override func viewDidLoad() { 
    super.viewDidLoad() 

    label.text = "gpb" 
    label.backgroundColor = .red 
    label.sizeToFit() 

    Timer.scheduledTimer(timeInterval: 1, target: self, 
         selector: #selector(self.timerDidFire(timer:)), userInfo: nil, repeats: true) 

} 

func timerDidFire(timer: Timer) { 
    size += 5 
    label.font = label.font.withSize(CGFloat(size)) 
    label.sizeToFit() 
} 

它看起來像

enter image description here

+0

自動收縮已經在,所以我不認爲這些會有所作爲 – joshLor

+0

@joshLor更新我的答案。 –

+0

可悲的是因爲我的佈局不適合我(尺寸合適) – joshLor