Fabrizio
Fabrizio

Reputation: 417

Font in iOS11 is incorrectly displayed

I have a font called Poppins-bold (you can find it on Google Font) that in iOS 11 display incorrectly. Here you can see a screenshot with iOS 10:

iOS 10 Screenshot

And screenshot in iOS 11:

iOS 11 Screenshot

Four fonts displayed are:

And my error is with Poppins Bold via code. My code is:

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

How is it possible?

I've printed font in the projects and this is my result:

Font Family Name = [Poppins]
Font Names = [["Poppins-Regular", "Poppins"]]

Upvotes: 2

Views: 3136

Answers (2)

mike
mike

Reputation: 141

I might be a bit late, but in case your question is still relevant, problem can be solved by updating font files from https://fonts.google.com/specimen/Poppins. You will also need to use "Poppins-Bold" font name instead of "Poppins".

Upvotes: 0

matt
matt

Reputation: 535501

Your printout explains the problem. "Poppins" is a family name. If you have both Poppins Regular and Poppins Bold, the family name defaults to meaning the regular font. This prevents you from accessing the Poppins Bold font by its name, which (unfortunately) is "Poppins".

Instead, use the font descriptor to change Poppins Regular to 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

Upvotes: 2

Related Questions