我想在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”,中文字符在这些字体中看起来不太好。)有什么想法吗?
答案 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