关于xcode:iOS上可用的字体

Available Fonts on iOS

我正在尝试在Swift中制作一个UILabel-标签将显示简体中文字符。 我试图使用Mac随附的Kaiti SC字体,该字体可在Font Book和Mac上的所有程序中找到,但是当我使用以下代码列出字体时,它没有显示。

1
2
3
4
5
6
7
8
    let fontFamilyNames = UIFont.familyNames()

    for familyName in fontFamilyNames {

        print("Font Family Name = [\\(familyName)]")
        let names = UIFont.fontNamesForFamilyName(familyName)
        print("Font Names = [\\(names)]")
    }

我的UILabel的代码如下:

1
2
3
4
5
   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上可用或完全可用。


这里是Swift 5版本:

1
2
3
4
5
6
7
let fontFamilyNames = UIFont.familyNames

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


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

如果您访问https://support.apple.com/zh-cn/HT202771,您将看到iOS中可用的字体。此外,它说:"应用程序可以根据需要下载以下字体:",其中包括许多亚洲字体和其他字体。他们没有告诉您如何访问这些字体。显然,这些字体在Mac上,并且必须专门下载到iOS。

该网站向您展示了如何执行此操作:http://www.perfectline.co/blog/2010/05/uiappfonts-custom-fonts-with-the-iphoneipad-3-2-sdk/

我发现有两个技巧:(1)您需要在info.plist中添加一个新键,并且(2)您必须编写一个函数来列出字体系列,这样您才能知道需要在字体中使用的实际字体名称程序。该站点具有这样的功能:http://giordanoscalzo.tumblr.com/post/95900320382/print-all-ios-fonts-in-swift