我不能以编程方式使用添加到Xcode的字体

时间:2019-03-03 12:18:10

标签: ios swift xcode fonts

我想以编程方式对我的项目使用自定义字体(外部字体)。

  1. 我在项目文件夹中添加了字体。
  2. 将导入的字体记录到info.plist中 Recording info.plist
  3. 将该字体文件复制到BuildPhases-> Copy Bundle Resources Copy Bundle Resources
  4. 字体显示在“属性”检查器中 Attributes Inspector

但是当我实现此代码以获取自定义字体名称时,会出现很多字体,但是我的自定义字体未出现在控制台上。

 for the family: String in UIFont.familyNames
        {
            print(family)
            for names: String in UIFont.fontNames(forFamilyName: family)
            {
                print("== \(names)")
            }
        }

因此,如下所述,当我以编程方式在项目中实现属性字符串时,

let att1 = [NSAttributedString.Key.font : UIFont(name: "Sofia Pro", size: 18.0)]

它崩溃了,说unrecognized selector sent to instance

我跳过任何步骤了吗?

2 个答案:

答案 0 :(得分:-1)

在项目中添加字体时,必须选择Add to target,如给定图像所示:-

enter image description here

然后,您可以从Xcode中选择字体。

enter image description here

无需在Fonts和其他任何地方添加info.plist

答案 1 :(得分:-2)

Must recorded in plist

现在它正在工作。但是,如果要以编程方式使用字体,则必须将字体添加到info.plist中。如屏幕截图所示,控制台上仅显示info.plist字体,我可以通过编程方式使用它们。

let att1 = [NSAttributedString.Key.font : UIFont(name: "SofiaPro-LightItalic", size: 18.0)]

我不能以编程方式使用其他人。使用时,它崩溃了。