如何以编程方式访问iOS系统字体

如何以编程方式访问iOS系统字体,ios,swift,cocoa-touch,Ios,Swift,Cocoa Touch,我正在尝试更改导航栏标题的字体大小。我知道我可以使用以下方法设置其属性: var attributes = [ NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont(name: "the font name", size: 18)! ] 我似乎找不到正确的“系统”字体名称 我是在默认后,又称系统,字体名。我尝试打印所有可用字体,结果发现它不属于某个系列,而且似乎没有明确的名称。我认为

我正在尝试更改导航栏标题的字体大小。我知道我可以使用以下方法设置其属性:

var attributes = [ NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont(name: "the font name", size: 18)! ]

我似乎找不到正确的“系统”字体名称

我是在默认后,又称系统,字体名。我尝试打印所有可用字体,结果发现它不属于某个系列,而且似乎没有明确的名称。

我认为您需要:

NSFontAttributeName : UIFont.systemFontOfSize(19.0)
或粗体版本:

NSFontAttributeName : UIFont.boldSystemFontOfSize(19.0)

有关用户界面指南和字体的更多信息,请参阅。

请尝试以下代码:

self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name:"Arial", size:14.0)!, NSForegroundColorAttributeName:UIColor.blackColor()]

只需使用UIFont(swift)的方法即可:


希望有帮助

您可以像这样访问系统字体,甚至可以设置字体的重量:

  • ,

    UIFont.systemFont(ofSize:18,weight:UIFontWeightLight)

  • UIFont.systemFontOfSize(18,重量:UIFontWeightLight)

对于字体重量,您可以在这些常量之间进行选择,可从以下位置获得:

(与菲利普对最新版本的回答一致)

  • 斯威夫特4

    UIFont.systemFont(尺寸:18,重量:UIFont.weight.light)

SWIFT 4+: 较短版本

UIFont.systemFont(ofSize: 14.0, weight: .regular)

除了所有答案之外,最好将系统字体与系统样式一起使用,而不是定义自定义大小和权重。要以编程方式访问它们(例如标题),可以使用以下方法:

let font = UIFont.preferredFont(forTextStyle: .headline)

我知道它至少对Swift 5是有效的代码。

不应该是
。导航栏标题的boldSystemFontOfSize(17.0)
?是的,可能是,取决于您想要什么。我已经更新了我的答案。谢谢如果你在答案中加上这个,那就太酷了:字体大小是@2x分辨率的倍数,所以OP应该使用那篇文章中的字体大小/2。当然,尽管我认为它超出了OP的需要。再次感谢,不客气!是的,它超出了OP的需要,但我相信这将是阅读本文的其他人的一个很好的参考。这是Swift3。。。美好的谢谢@ChrisAllinson!请参阅此项以添加字体大小UIFont.preferredFont(forTextStyle:.body)。使用大小(14)
let sysFont: UIFont = UIFont.systemFontOfSize(UIFont.systemFontSize())
UIFontWeightUltraLight,
UIFontWeightThin,
UIFontWeightLight,
UIFontWeightRegular,
UIFontWeightMedium,
UIFontWeightSemibold,
UIFontWeightBold,
UIFontWeightHeavy,
UIFontWeightBlack
UIFont.systemFont(ofSize: 14.0, weight: .regular)
let font = UIFont.preferredFont(forTextStyle: .headline)