iOS11中的字体显示不正确

时间:2017-10-08 17:18:48

标签: ios swift fonts

我有一个名为Poppins-bold的字体(你可以在Google字体上找到它),在iOS 11中显示不正确。在这里,您可以看到iOS 10的屏幕截图:

iOS 10 Screenshot

iOS 11中的截图:

iOS 11 Screenshot

显示的四种字体是:

  • Poppins大胆的故事板
  • Helvetica Bold with Storyboard
  • Poppins Regular代码
  • Poppins Bold via code

我的错误是Poppins Bold通过代码。我的代码是:

label1.font = UIFont(name: "Poppins-Regular", size: 30)
label2.font = UIFont(name: "Poppins", size: 30)

怎么可能?

我在项目中打印了字体,这是我的结果:

  

字体系列名称= [Poppins]
  字体名称= [[“Poppins-Regular”,“Poppins”]]

2 个答案:

答案 0 :(得分:1)

您的打印输出解释了问题。 “Poppins”是一个姓氏。如果您同时拥有Poppins Regular和Poppins Bold,则系列名称默认为常规字体。这会阻止您通过其名称访问Poppins Bold字体,其中(不幸的是)是“Poppins”。

相反,使用字体描述符将Poppins Regular更改为Poppins Bold:

    let font = UIFont(name: "Poppins-Regular", size: 30)!
    let desc = font.fontDescriptor
    let desc2 = desc.withSymbolicTraits(.traitBold)!
    let font2 = UIFont(descriptor: desc2, size: 0)
    self.lab.font = font2

答案 1 :(得分:0)

我可能会有点迟到,但如果您的问题仍然存在,可以通过更新https://fonts.google.com/specimen/Poppins中的字体文件来解决问题。您还需要使用“Poppins-Bold”字体名称而不是“Poppins”。