更改 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 中的字体大小(swift)