UIFont为自定义字体返回nil

时间:2018-06-28 16:51:57

标签: ios swift xcode fonts

我正在尝试为我的UILabel使用Nunito-ExtraBoldItalic字体。

我遵循了教程和其他答案中概述的步骤。

  1. 将字体添加到字体文件夹。确保将目标设置为项目。 enter image description here
  2. 将条目添加到plist。 enter image description here
  3. 确保字体显示在构建阶段/复制包资源中。如图所示。

我正在使用以下代码创建UIlabel:

uiLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 160, height: 50))
let myfont = UIFont(name: "Nunito-ExtraBoldItalic", size: 14)
uiLabel!.font = myfont
uiLabel!.textColor = UIColor(red: CGFloat(51/255.0), green: CGFloat(33/255.0), blue: CGFloat(32/255.0), alpha: CGFloat(100.0))
addSubview(uiLabel!)

但是UIFont返回nil。

字体的脚本名称为“ Nunito-ExtraBoldItalic”。

我还尝试运行以下内容:

    for familyName:String in UIFont.familyNames {
        print("Family Name: \(familyName)")
        for fontName:String in UIFont.fontNames(forFamilyName: familyName) {
            print("--Font Name: \(fontName)")
        }
    }

我的字体没有显示。

该字体在情节提要和其他区域中可见。

enter image description here

我尝试使用Nunito-ExtraBoldItalic,Nunito-ExtraBold Italic,Nunito-ExtraBold-Italic作为名称。没有工作。

所以我不确定是什么问题。

2 个答案:

答案 0 :(得分:2)

  1. 将字体文件添加到项目中。

enter image description here

  1. 在Info.plist中添加“应用程序提供的字体”。

    <key>UIAppFonts</key> <array> <string>CarterOne.ttf</string> </array>

  2. 确保字体文件列在BuildPhase-> Copy Bundle Resources中。

enter image description here

  1. 确保选中了“目标成员身份”。

enter image description here

  1. 执行干净的构建cmd + option + shift + K

答案 1 :(得分:0)

您还需要将字体添加到.plist文件中 请阅读以下内容: https://developer.apple.com/documentation/uikit/text_display_and_fonts/adding_a_custom_font_to_your_app

将字体名称添加到此plist键: “ 应用程序提供的字体 n”