Xcode游乐场中的自定义字体

时间:2014-12-14 18:41:48

标签: xcode swift-playground

我在代码中编写接口布局。因为每次我逐个像素地测试字体大小或视图布局时重新加载应用程序很烦人,所以我开始在操场上进行。这确实有很大帮助。但我确实想念那里的自定义字体。

有没有办法在游乐场添加自定义字体?

2 个答案:

答案 0 :(得分:20)

首先,将.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文件的文件名通常与UIFont名称所需的字体的实际desciptor名称不匹配。要找到它,请在Mac上的Font Book中打开.ttf文件,查看其详细信息,然后查找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 :(得分:1)

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])
}