iOS上的可用字体

我试图在Swift中创build一个UILabel ,标签将显示一个简体中文字符。 我试图使用Mac自带的Kaiti SC字体,它可以在字体手册和Mac上的所有程序中使用,但是当我使用下面的代码列出字体时,它不会显示出来。

  let fontFamilyNames = UIFont.familyNames() for familyName in fontFamilyNames { print("Font Family Name = [\(familyName)]") let names = UIFont.fontNamesForFamilyName(familyName) print("Font Names = [\(names)]") } 

我的UILabel的代码如下:

  let characterLabel:UILabel! = UILabel(frame: CGRectMake(600,140,300,300)); characterLabel.font = UIFont(name:"Kaiti SC" , size:250.0); characterLabel.text = "说"; 

我会认为Mac上的所有字体都可以在我的Swift程序中使用。 (这个代码当然和其他字体一样,比如“Baskerville”,中文字符在这些字体上看起来不太好)。

字体Kaiti SC在iOS上不可用,查看可用字体的完整列表http://iosfonts.com/

虽然字体在OS X上可用,但并不意味着它在iOS上可用或完全可用。

这似乎是我的问题的答案。

如果您访问https://support.apple.com/en-ap/HT202771 ,则会看到iOS中可用的字体。 另外,它说“应用程序可以根据需要下载以下字体”,这些字体包括许多亚洲字体和其他字体。 他们不告诉你如何访问这些字体。 显然,这些字体是在Mac上,并且必须专门下载到iOS。

本网站向您展示了如何做到这一点: http : //www.perfectline.co/blog/2010/05/uiappfonts-custom-fonts-with-the-iphoneipad-3-2-sdk/

我发现这两个技巧是必要的:(1)你需要在info.plist中添加一个新的密钥,(2)你必须编写一个函数来列出字体系列,这样你就知道你需要使用的实际字体名称程序。 这个网站有这样一个function: http : //giordanoscalzo.tumblr.com/post/95900320382/print-all-ios-fonts-in-swift