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

Posted

技术标签:

【中文标题】更改 UILabel 的大小会更改其字体名称【英文标题】:Changing UILabel's size changes its font name 【发布时间】:2017-04-24 12:10:24 【问题描述】:

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

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 并从情节提要更改字体,即使在更改字体大小后也能正常工作。

如何解决这个问题?

【问题讨论】:

【参考方案1】:

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

外观一旦出现在窗口中就不会改变属性。 创建自定义标签类并使用它。

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

外观请查看链接https://developer.apple.com/reference/uikit/uiappearance

【讨论】:

那么如何保持我为 UILabel 全局设置的相同字体? 你的解决方案是对的 UILabel.appearance().font = UIFont(name: "PartyLetPlain", size: 17) 。但是一旦它们在窗口中,外观就不会改变属性。每当您想更改字体时,它都会使用完整的 UIFont(name: "PartyLetPlain", size: 17) 设置为外观不起作用。或者您可以创建自定义标签类并使用它。

以上是关于更改 UILabel 的大小会更改其字体名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改字体本身的情况下更改 uilabel 的字体大小?

UILabel 颜色和字体大小从 XIB 更改

根据自动布局更改 UILabel 中的字体大小(swift)

如何在 Swift 中更改 UILabel 的字体大小?

字体更改时自动uiLabel和uiTableViewCell调整大小的iphone代码?

自动布局 - UILabel 在方向更改后宽度缩小,这是由另一个应该自动调整字体大小的 UILabel 引起的