【问题标题】:Can't use the Maestro font in iOS无法在 iOS 中使用 Maestro 字体
【发布时间】:2018-07-18 21:24:55
【问题描述】:

我们目前正在开发 iOS 中的音乐创作应用程序。但是我不能使用我从互联网上获得的 .ttf 格式的名为“Maestro”的字体。

我也尝试过使用 macOS 自带的 .suit,但还是不行。

我按照这个问题中的步骤导入了我的自定义字体: custom font not working programetically in swift

打印存在的字体也会显示 Maestro 字体:

print(UIFont.familyNames)

结果:(在最后一个元素中找到 Maestro)

["Copperplate", "Heiti SC", "Apple SD Gothic Neo", "Thonburi", "Gill Sans", "Marker Felt", "Hiragino Maru Gothic ProN", "Courier New", "Kohinoor Telugu", "Heiti TC", "Avenir Next Condensed", "Tamil Sangam MN", "Helvetica Neue", "Gurmukhi MN", "Georgia", "Times New Roman", "Sinhala Sangam MN", "Arial Rounded MT Bold", "Kailasa", "Kohinoor Devanagari", "Kohinoor Bangla", "Chalkboard SE", "Apple Color Emoji", "PingFang TC", "Gujarati Sangam MN", "Geeza Pro", "Damascus", "Noteworthy", "Avenir", "Mishafi", "Academy Engraved LET", "Futura", "Party LET", "Kannada Sangam MN", "Arial Hebrew", "Farah", "Arial", "Chalkduster", "Kefa", "Hoefler Text", "Optima", "Palatino", "Malayalam Sangam MN", "Al Nile", "Lao Sangam MN", "Bradley Hand", "Hiragino Mincho ProN", "PingFang HK", "Helvetica", "Courier", "Cochin", "Trebuchet MS", "Devanagari Sangam MN", "Oriya Sangam MN", "Snell Roundhand", "Zapf Dingbats", "Bodoni 72", "Verdana", "Maestro Wide", "American Typewriter", "Avenir Next", "Baskerville", "Khmer Sangam MN", "Didot", "Savoye LET", "Bodoni Ornaments", "Symbol", "Menlo", "Noto Nastaliq Urdu", "Bodoni 72 Smallcaps", "Papyrus", "Hiragino Sans", "PingFang SC", "Myanmar Sangam MN", "Zapfino", "Telugu Sangam MN", "Bodoni 72 Oldstyle", "Euphemia UCAS", "Bangla Sangam MN", "Maestro"]

【问题讨论】:

  • 可能是名称不匹配。尝试使用this method 打印所有字体名称(而不仅仅是家族名称)。
  • 查看我对this SO 问题的回答,并完成我列出的所有步骤。
  • @the4kman 我也试过你的方法,字符串“Maestro”还是一样。
  • 你好@E.Huckabee 我也一步一步地按照你的回答,它仍然没有显示正确的自定义字体。我猜这个字体在某种程度上与 iOS 不兼容?
  • @Potayto 你能分享你的字体文件吗,你的字体文件似乎有问题。

标签: ios swift fonts custom-font


【解决方案1】:

我发现Maestro.ttf 字体用于音乐符号,如果您将标签设置为label.text = "hello world",那么它将正常显示,但如果您从字体复制符号并将其粘贴到字符串中,则会显示在运行时。

复制下面的文本并将其粘贴到您的代码中,这里的? 符号是因为该网站(以及xcode)不支持Maestro 字体

label.text = " "

模拟器截图:

要显示Maestro 字体的符号,您不能简单地输入1234 hello 文本(0-9、a-z、A-Z)并期望它被转换。您需要从字体中复制符号(下面的屏幕截图)并将其粘贴到 xcode 中,尽管它会显示为?在 xcode 中,但是当你运行它时,它会显示 Maestro 字体符号。

让xcode显示Maestro字体

  1. 在字体册中安装字体
  2. 重启xcode
  3. 进行如下设置

【讨论】:

  • 感谢您的帮助,但我确实需要符号 0-9 来表示音乐作品中的拍号。可以通过搜索“时间签名”在 Google 图片中找到示例
  • 对于您的编辑答案,您是否尝试在标签中输入数字?
  • 更新了我的答案,我使用了数字,但没有输入 1234,而是从字体文件中复制了它并将其粘贴到 xcode 中。
  • 成功了!我从字体书中复制粘贴了符号,它起作用了。虽然,代码现在看起来很奇怪,但没关系。非常感谢! :)
  • @Potayto 我再次更新了答案,现在您可以更改 xcode 设置让 xcode 显示大师字体
猜你喜欢
  • 2013-06-20
  • 2012-02-21
  • 2015-04-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多