字形在 Swift 中带有 ttf 文件

Posted

技术标签:

【中文标题】字形在 Swift 中带有 ttf 文件【英文标题】:Glyph's with a ttf file in Swift 【发布时间】:2016-02-02 12:27:55 【问题描述】:

我正在尝试将 ttf 文件用于 ios 应用程序的字形,并且字体字符串存在一些问题...我可以从 ttf 文件中读取 unicode 字体,但似乎没有读取字形文件。

例如,以下代码适用于 unicode 字符。

let myFont = UIFont(name: "WeatherIcons-Regular", size: 15)
cell.detailTextLabel?.font = myFont
cell.detailTextLabel?.text = "\u26c8"

但是,如果我尝试读取字形,则图标会显示为一个问号,周围有一个框。

let myFont = UIFont(name: "WeatherIcons-Regular", size: 15)
cell.detailTextLabel?.font = myFont
cell.detailTextLabel?.text = "\uf001"

链接到下面的 ttf 文件和 css 文件。

CSS File TTF File

我已将字体文件添加到我的应用程序中。

【问题讨论】:

我接受了您的回答,但它没有完整的解决方案...我只是不接受您的回答...我试图将您的回答重新用作完整的解决方案。 您是如何在项目中包含 CSS 的?尝试在 iOS 应用中使用相同的字体。 【参考方案1】:

让你在 iOS 项目的 Info.plist 中添加“Fonts provided by application”(即 UIAppFonts)键,并添加项“weathericons-regular-webfont.ttf”。

UIAppFonts (Array - iOS) 指定应通过正常机制提供的任何应用程序提供的字体。数组中的每个项目都是一个字符串,其中包含位于应用程序包中的字体文件的名称(包括文件扩展名)。系统会加载指定的字体,并在应用运行时让它们可供应用使用。

像这样:

用 Font Book 应用打开字体文件,我们可以看到字体名称是“天气图标”。然后打印所有字体名称以检查字体是否可用:

print(UIFont.familyNames())

【讨论】:

@JeffSloyer 您可能忘记将字体文件添加到您的应用程序目标。【参考方案2】:

确保ttf 文件包含在目标中。您可以通过在项目中设置字体文件的目标成员身份来做到这一点。

【讨论】:

以上是关于字形在 Swift 中带有 ttf 文件的主要内容,如果未能解决你的问题,请参考以下文章

fontforge - 合并字体以添加字形的脚本

HTML/CSS 通过 unicode + CSS 中的类使用 ttf 字体

如何将大纲数据写入 .otf 文件?

CFF(紧凑字体格式)库与撤消子程序化?

Swift or Objective-C IconFont 字体的使用

在 Swift 中带有变量的 NSLocalizedString 不起作用