更改 UILabel 的大小会更改其字体名称

Changing UILabel's size changes its font name

我想更改应用程序的默认字体,所以我做了

UILabel.appearance().font = UIFont(name: "PartyLetPlain", size: 17)

在 AppDelegate 中,它按预期工作,直到我尝试更改字体大小。

我试过像这样更改字体大小

categoryName.font = UIFont(name: categoryName.font.fontName, size: 17)

categoryName.font.fontWithSize(20)

更改字体大小后,它会更改 fontName 并打印此字体名称 .SFUIText 所以只是为了更改,我评论了

UILabel.appearance().font = UIFont(name: "PartyLetPlain", size: 17)

从 AppDelegate 更改了故事板的字体,即使在更改字体大小后也能正常工作。

如何解决这个问题?

.SFUIText 是默认的 system 字体,因此您在分配时会得到相同的结果。

外观 在 window 中不会更改属性。 创建自定义标签 class 并使用它。

或者直接使用您的字体 UIFont(name: "PartyLetPlain", size: 17) 来更改字体大小。它会起作用。

外观请查看linkhttps://developer.apple.com/reference/uikit/uiappearance