2015-06-27 75 views
13

我已經編程創建了一個標籤,我已經將adjustsToFitWidth設置爲true。現在我想更改它的字體,但是如果不將標籤的字體大小保持不變,我就無法做到這一點。有誰知道我可以如何改變字體而不是UILabel的字體大小?如何在不改變字體大小的情況下快速更改UILabel的字體?

+3

僅僅因爲你不改變字體大小並不一定意味着具有相同文本和相同大小的兩種不同字體將佔用相同的空間。 – nhgrif

回答

30

爲什麼不能獲得字體大小,並用這個值指定一個新的字體?

let fontSize = self.label.font.pointSize; 
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize) 
4

你可以這樣說:

label.font = UIFont(name: "Arial", size: label.font.pointSize) 

這將使用相同的字體大小,「宋體」,可你要選擇什麼家庭。

1

改進的答案。

UILabel子類:添加一個空的swift文件並命名它。 e.g..EZLabel。添加下面的代碼。

import Foundation 
import UIKit 

class EZLabel: UILabel { 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     changeFontName() 
    } 

    func changeFontName() 
    { 
     self.font = UIFont(name: "Roboto", size: self.font.pointSize) 
    } 
} 

好處是,如果需要,您不需要在整個項目中更改每個UILabel的字體。

相關問題