iOS中使用Phonegap Canvas自定义字体

8
我正在尝试在iOS的Phonegap中使用自定义字体。 我按照几个教程和所有相关的Stack Overflow问题进行了阅读,但即使我仔细检查了所有内容,仍然无法正确地实现。

这是字体:http://www.dafont.com/m04fatal-fury.font黑色版本

我所采取的步骤:

使用Xcode将您的自定义字体文件作为资源添加到项目中 在Info.plist文件中添加一个名为UIAppFonts的键。 将此键设置为数组 对于每种字体,将您的字体文件的完整名称(包括扩展名)作为UIAppFonts数组的项输入 保存Info.plist 现在在应用程序中,您可以简单地调用[UIFont fontWithName:“CustomFontName”size:12]来获取用于UILabel和UITextView等的自定义字体。

  1. 将字体添加到资源文件夹m04b.ttf中
  2. 添加UIAppFonts数组。 [0] => 'm04b.ttf'
  3. 检查实际字体文件是否在构建阶段资源中
  4. ctx.font ='16px M04_FATAL FURY BLACK';

没有起作用。

尝试过后脚本名称M04_FATAL-FURY-BLACK,但仍然没有成功。我完全迷失了,真的不知道该如何调试此错误。

非常感谢您的帮助。可能出了什么问题?我该怎么检查是否加载了所有内容?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>UIAppFonts</key>
    <array>
        <string>m04b.ttf</string>
    </array>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    .....

你能添加与 Info.plist 相关的部分吗? - Sergey Kuryanov
1
如果您在应用程序中添加了 for (NSString *font in [UIFont familyNames]) { NSLog(@"%@", font); },您能看到字体显示出来吗?(我看到了一个条目“M04_FATAL FURY”) - Nuoji
7个回答

5

我也遇到了同样的问题。我能几乎保证你只是错误地拼写了名字,可能是空格或破折号等问题。将以下内容放入 viewDidLoad 方法中,然后搜索与你的名字相似的常见名称(不是.ttf文件的名称)。

for (NSString *name in [UIFont familyNames]) {
    NSLog(@"Family name : %@", name);
    for (NSString *font in [UIFont fontNamesForFamilyName:name]) {
        NSLog(@"Font name : %@", font);
    }
}

0

我尝试了“应用提供的字体”/资源嵌入方法,发现您还必须在应用程序中指定.ttf扩展名。

但是,在画布上下文中,我无法正确设置大小,字体非常小。

因此,根据我的经验,这种方法效果不佳,您必须退回到html @font-face方法,这很麻烦,因为很难知道字体何时加载并准备好使用...


0

0

我遇到了同样的问题。问题在于,我通过Finder将字体添加到了资源文件夹中。我注意到,虽然字体在文件夹中,但在Xcode中并没有显示出来。后来我通过Xcode添加了该文件,就解决了这个问题!


0

尝试将字体添加到.plist文件中的“应用程序提供的字体”键下,该键在输入密钥名称时建议使用,而不是“UIAppFonts”。


它们是相同的。 UIAppFonts 是实际的“原始”键名,而 Fonts provided by application 只是该键的更友好的描述,它包含了用途。如果您在属性列表编辑器中右键单击,可以使用“显示原始键/值”菜单项在原始名称和显示名称之间切换。 - NSGod

0

下载字体并将其放在您的www文件夹中。

在您的CSS文件中添加以下内容。

@font-face {
    font-family: customFontExample;
    src: url('/fonts/AveriaGruesaLibre-Regular.ttf'); 
}

src 是字体下载的路径。之后,您可以通过使用名称“customFontExample”来为元素提供自定义字体,如下所示:

h1{
font-family: customFontExample;
}

0
各位朋友,如果你需要@font-face的东西,那么你做错了。
一旦你在应用程序中使用UIFont使字体可用,它也可以在任何UIWebView中使用,你只需要正确指定你的font-family css属性即可。
例如:
.customfont { font-family: 'M04_FATAL-FURY-BLACK'; }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接