iOS上的可用字体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS上的可用字体相关的知识,希望对你有一定的参考价值。

我正在尝试在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”等其他字体一起使用,中文字符在这些字体中看起来并不好。)有什么想法吗?

答案

字体Kaiti SCios上不可用,有关可用字体检查的完整列表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)您必须编写一个函数来列出字体系列,因此您知道需要使用的实际字体名称在您的程序中。该站点具有这样的功能:http://giordanoscalzo.tumblr.com/post/95900320382/print-all-ios-fonts-in-swift

另一答案

这里是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)]")
}

以上是关于iOS上的可用字体的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字体是不是在 iOS 版本中可用?

网络上的字体 [重复]

网络上的字体 [重复]

ios上的网络字体字母空间巨大

iOS Coding项目片段记录

fontDescriptorWithSymbolicTraits 方法返回不同字体系列中的新字体描述符引用,而不是 iOS13 上的相同字体系列