2010-10-01 140 views
16

如何使用自定義字體獲取UIFont對象?我記得Info.plist文件中還存在一些問題。如何將自定義字體添加到iPhone應用程序?

支持哪些字體文件格式?

+4

可能重複的[我可以在iPhone應用程序中嵌入自定義字體?](http://stackoverflow.com/questions/360751/can-i-embed-a-custom-font-in-an-iphone-應用程序) – 2010-10-01 14:14:48

+0

有用的教程:http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ – Suragch 2015-02-25 05:59:03

回答

52

要將自定義字體添加到應用程序中,可以將它們添加到XCode項目。然後,修改application-info.plist文件。將「應用程序提供的字體」鍵添加到新行。爲您添加的每種字體添加一個項目。

它支持TTF和OpenType兩種字體。需要注意的是,它會在您的應用程序啓動時加載並解析所有字體,因此會減慢初始加載時間。

我相信這隻適用於iOS 3.2或更高版本。

+1

我添加到Info.plist的內容是什麼?完整的文件名或? – esbenr 2011-11-09 07:30:05

+0

是的,完整的文件名。 – 2012-07-13 21:24:25

+1

yourprojectname-Info.plist是完整的文件名。 – ArnoHlaMoe 2013-01-11 12:27:24

9

最佳鏈路初學者
如何添加自定義字體在您的項目Link

2

編程方式(SWIFT)

添加字體到您的項目在資源文件夾
並添加此功能:

func loadFont(filePath: String) { 

    let fontData = NSData(contentsOfFile: filePath)! 

    let dataProvider = CGDataProviderCreateWithCFData(fontData) 
    let cgFont = CGFontCreateWithDataProvider(dataProvider)! 

    var error: Unmanaged<CFError>? 
    if !CTFontManagerRegisterGraphicsFont(cgFont, &error) { 
     let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue()) 
     print("Unable to load font: %@", errorDescription) 
    } 

} 

使用例如:

if let fontPath = NSBundle.mainBundle().pathForResource("MyCustomFont", ofType:"ttf"){ 
    loadFont(fontPath) 
} 

... 
... 
let myFont = UIFont(name: "MyCustomFont",size: CGFloat(18)) 
+0

這很棒,似乎可以提高啓動時間。謝謝! – chrilith 2016-07-12 09:02:39

相關問題