2010-10-01 4 views
16

Что мне нужно сделать, чтобы получить объект UIFont с пользовательским шрифтом? Я помню, что в файле Info.plist было что-то еще.Как добавить пользовательские шрифты в приложение для iPhone?

Какие форматы файлов шрифтов поддерживаются?

+4

Возможный дубликат [Могу ли я встроить собственный шрифт в приложение iPhone?] (Http://stackoverflow.com/questions/360751/can-i-embed-a-custom-font-in-an-iphone- приложение) –

+0

Полезный учебник: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ – Suragch

ответ

52

Чтобы добавить пользовательский шрифт в приложение, вы можете добавить его в проект XCode. Затем измените файл application-info.plist. Добавьте ключ «Шрифты, предоставляемые приложением» в новую строку. Добавьте один элемент для каждого добавляемого шрифта.

Он поддерживает шрифты TTF и OpenType. Одно из предостережений заключается в том, что он загружает и анализирует все шрифты при запуске вашего приложения, поэтому он замедляет начальное время загрузки.

Я считаю, что это доступно только в iOS 3.2 или новее.

+1

Что я могу добавить в Info.plist? Полное имя файла или? – esbenr

+0

Да, полное имя файла. –

+1

yourprojectname-Info.plist - полное имя файла. – ArnoHlaMoe

9

Лучшая ссылка для начинающих
Как добавить пользовательский шрифт в проекте Link

2

Programming путь (быстрое)

Добавить шрифты в свой проект в папке ресурсов
и добавить эту функцию:

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

Смежные вопросы