iOS上可用的字体

时间:2015-11-24 11:05:36

标签: ios xcode swift fonts

我想在Swift中创建一个UILabel - 标签将显示一个简体中文字符。我正在尝试使用Mac附带的Kaiti SC字体,它可以在Font Book和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”,中文字符在这些字体中看起来不太好。)有什么想法吗?

3 个答案:

答案 0 :(得分:3)

iOS上没有字体Kaiti SC,以获取可用字体检查的完整列表http://iosfonts.com/

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

答案 1 :(得分:1)

这里是Swift 5版本:

let fontFamilyNames = UIFont.familyNames

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

答案 2 :(得分:0)

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

如果您转到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)你必须编写一个函数来列出字体系列,这样你才能知道你需要的实际字体名称在你的程序中使用。该网站具有以下功能:http://giordanoscalzo.tumblr.com/post/95900320382/print-all-ios-fonts-in-swift