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

ios - iOS11中的字体显示不正确-LMLPHP

和iOS 11中的屏幕截图:

ios - iOS11中的字体显示不正确-LMLPHP

显示的四种字体是:

  • Poppins用情节提要大胆
  • Helvetica用情节提要粗体
  • Poppins Regular通过代码
  • Poppins通过代码
  • 加粗

    我的错误是通过代码使用了Poppins Bold。我的代码是:
    label1.font = UIFont(name: "Poppins-Regular", size: 30)
    label2.font = UIFont(name: "Poppins", size: 30)
    

    这怎么可能?

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

    字体家族名称= [Poppins]
    字体名称= [[[“Poppins-Regular”,“Poppins”]]

    最佳答案

    您的打印输出说明了问题。 “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
    

    关于ios - iOS11中的字体显示不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46633882/

    10-12 06:41