[iOS/macOS]使用Swift設定等寬字體

前言

使用等寬字體可以解決因文字長度不變但內容改變的情況下總寬度會變化的問題

如果是一開始就決定好的畫面可以用IDE設定字體

那如果是動態產生的元件要怎麼用呢?

語法

/* macOS 將 UIFont 改成 NSFont */
let font = UIFont.monospacedDigitSystemFont(ofSize: 14.0, weight: UIFont.Weight.regular)

範例

/* 設定好文字大小及字體樣式 */
let font = UIFont.monospacedDigitSystemFont(ofSize: 14.0, weight: UIFont.Weight.regular)

for i in 0...4 {
    let label = UILabel(frame: CGRect(x: 0, y: i * 40, width: 300, height: 80))
    label.text = "This is " + String(i) + " .";
    
    self.view.addSubview(label)
}

for i in 0...4 {
    let label = UILabel(frame: CGRect(x: 0, y: (i + 5) * 40, width: 300, height: 80))
    label.text = "This is " + String(i) + " .";
    label.font = font
    
    self.view.addSubview(label)
}

效果

上方使用的是一般字體,可以看到數字1比其他數字窄一些,所以整體長度縮小了

下方使用的是等寬字體,每一行的長度都一樣

若這邊教學有幫助到你的話~請多多分享轉發出去給更多的人知道

謝謝大家的觀看