gpt4 book ai didi

ios - 在 WatchKit (Apple Watch) 中设置非系统字体

转载 作者:可可西里 更新时间:2023-11-01 01:06:10 26 4
gpt4 key购买 nike

我有一个使用 Menlo Bold 字体作为标签的 Apple Watch 应用程序。

在支持 watchkit 的第一个 Xcode 版本中,我能够将 Storyboard 中的标签字体更改为 Menlo Bold 36,并且一切正常。

在当前版本 (Xcode 6.2) 中,这不再是可能的,所以我找到了关于如何在 Apple Watch 中设置自定义字体的教程,http://www.tech-recipes.com/rx/53710/how-do-i-use-custom-fonts-in-my-apple-watch-app/

我在本教程中找到了这段代码:

func printFonts() {
let fontFamilyNames = UIFont.familyNames()
for familyName in fontFamilyNames {
println("------------------------------")
println("Font Family Name = [\(familyName)]")
let names = UIFont.fontNamesForFamilyName(familyName as String)
println("Font Names = [\(names)]")
}
}

此代码打印可用字体。
用于查看为什么添加的字体名称。

在这个阶段我还没有添加任何自定义字体,但我运行这个函数只是为了看看 Apple Watch 默认可用的字体。
运行后我发现:

/* lot of fonts before */
------------------------------
Font Family Name = [Menlo]
Font Names = [[Menlo-BoldItalic, Menlo-Regular, Menlo-Bold, Menlo-Italic]]
------------------------------
/* lot of fonts after */

我的 Menlo-Bold 似乎可以在 Apple Watch 上使用,但我就是无法在 StoryBoard 中选择它。

所以,我觉得这很好,我不需要添加字体我会直接使用它。

这是我的代码:

    // must maee attributed text
let attributedTextForHour = NSAttributedString(
string: "IS IT WORKING",
attributes: NSDictionary(object: UIFont(name: "Menlo-Bold", size: 36)!, forKey:NSFontAttributeName))

// with atributex text
mylabel.setAttributedText(attributedTextForHour)

当我在模拟器中运行这段代码时,标签的字体没有改变。
还有一些其他奇怪的事情:

  • 在调试器中,当我在 mylabel.setAttributedText(attributedTextForHour) 上设置断点并快速查看 attributedTextForHour 时,它以正确的字体显示。

所以在调试器中没问题,但在模拟器上就不行了。

那么如何解决这个问题呢?

我没有 Apple Watch,所以我可以在真实设备上看到发生了什么。

所以,我不知道我的代码中是否存在问题,或者这是 Apple 的错误。

如果有人可以在计算机上测试它并报告结果,那也会很有用。

也许整个问题是因为我没有从外部添加 Menlo Bold 字体,而我使用的是 printFont() 函数显示的内容。所以如果有人知道在哪里可以下载 Menlo Bold 字体,请提供链接,以便我也可以测试一下。

最佳答案

我设法解决了这个问题,所以我发帖给后代。

我从中学到了一些东西(工作 3 小时后)

如果你想添加已经在 printFonts() 中打印的字体,事情就变得复杂了。

不能用同名添加,必须用不同的名字添加,我叫Menlo-Bold-My.otf,还要改一些字体ID。所以 Menlo-Bold-My.otf 与 Apple 的 Menlo-Bold.otf 相同。

为了转换、操作字体,我使用了程序 http://fontforge.github.io/en-US/

关于ios - 在 WatchKit (Apple Watch) 中设置非系统字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29395713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com