一尘不染

Swift自定义字体Xcode

swift

我正在使用Swift在Xcode(7.0版)中创建游戏,并且我想在游戏结束时以字体“ gameOver.ttf”显示标签“ Game
Over”。我已将字体添加到资源文件夹中。我不知道如何在我的代码中引用它。我可以帮忙吗?我的代码:

let label = SKLabelNode(fontNamed: "gameOver")
    label.text = "Game Over"
    label.fontColor = SKColor.redColor()
    label.fontSize = 150
    label.position = CGPointMake(0, 100)
    label.horizontalAlignmentMode = .Center
    node.addChild(label)

阅读 434

收藏
2020-07-07

共1个答案

一尘不染

这些是向您的应用程序添加自定义字体的步骤:

  1. 在您的应用程序中添加“ gameOver.ttf”字体(确保它已包含在目标中
  2. 修改application-info.plist文件。
  3. 在新行中添加键 “应用程序提供的字体”
  4. 并将“ gameOver.ttf”作为新项添加到“ 应用程序提供的字体” 数组中。

现在,该字体将在Interface Builder中可用。要在代码中使用自定义字体,我们需要按名称引用它,但是名称通常与字体的文件名不同

有两种查找名称的方法:

  1. 在Mac上安装字体。打开字体书,打开字体,然后查看列出的名称。
  2. 以编程方式列出应用程序中的可用字体

对于第二种方法,添加此行是您的应用程序代表的 didFinishLaunchingWithOptions

print(UIFont.familyNames)

要列出每个字体系列中包含的字体,在Swift 5中:

 func printFonts() {
    for familyName in UIFont.familyNames {
        print("\n-- \(familyName) \n")
        for fontName in UIFont.fontNames(forFamilyName: familyName) {
            print(fontName)
        }
    }
}

找到自定义字体的名称后,您可以像这样使用它:

SKLabelNode(fontNamed: "gameOver") // put here the correct font name

或在简单标签中:

cell.textLabel?.font = UIFont(name: "gameOver", size: 16) // put here the correct font name

有用的资源

2020-07-07