2014-12-14 4 views
10

Я пишу интерфейс в коде. Поскольку это раздражает, чтобы перезагружать приложение каждый раз, когда я проверяю размер шрифта или отображаю пиксель по пикселям, я начал делать это на игровой площадке. Это очень помогает. Но я скучаю по своим обычным шрифтам.Пользовательские шрифты в игровой площадке Xcode

Есть ли способ добавить пользовательские шрифты на вашу игровую площадку?

+0

ли вы когда-нибудь узнать, как это сделать? ! – Jan

+0

к сожалению, я не :( – Katafalkas

+0

@Jan Надежды вы увидели ответ ниже ... –

ответ

14

Сначала добавьте файл .ttf в ресурсы вашей игровой площадки. Затем вы можете загрузить шрифт, как это:

let cfURL = NSBundle.mainBundle().URLForResource("Proxima Nova Semibold", withExtension: "ttf") as! CFURL 

CTFontManagerRegisterFontsForURL(cfURL, CTFontManagerScope.Process, nil) 

let font = UIFont(name: "ProximaNova-Semibold", size: 14.0) 

Имя файла файла .ttf обычно не совпадает с фактическим именем desciptor шрифта, который вам нужно для имени UIFont. Чтобы найти это, откройте файл .ttf в Font Book на вашем Mac, посмотрите его детали и найдите имя PostScript. Это имя, чтобы искать в UIFont (имя: ...)

В качестве альтернативы вы можете посмотреть для установленного шрифта после регистрации URL с помощью следующего кода:

var fontNames: [[AnyObject]] = [] 
for name in UIFont.familyNames() { 
    println(name) 
    if let nameString = name as? String 
    { 
     fontNames.append(UIFont.fontNamesForFamilyName(nameString)) 
    } 
} 
fontNames 
+1

он просто работает фантастический – SlowTree

+1

Для swift3, используйте: пусть fontURL = Bundle.main.url (forResource: «ProximaNova-Semibold ", withExtension:" ttf ") CTFontManagerRegisterFontsForURL (fontURL! как CFURL, CTFontManagerScope.process, nil) – iamdavidlam

0

В дополнение к Chris Garrett ответы, пожалуйста, найти код для Swift 4:

let cfURL = Bundle.main.url(forResource: "SanaSansAlt-Black", withExtension: "otf")! as CFURL 
CTFontManagerRegisterFontsForURL(cfURL, CTFontManagerScope.process, nil) 
var fontNames: [[AnyObject]] = [] 
for name in UIFont.familyNames { 
    print(name) 
    fontNames.append(UIFont.fontNames(forFamilyName: name) as [AnyObject]) 
} 
Смежные вопросы