mee*_*tpd 60 iphone cocoa-touch objective-c iphone-sdk-3.0 ios4
我想在我的iPhone应用程序中使用字体"MgOpen Modata".但我没有在属性检查器的字体列表中看到它.
如何包含该字体以便我可以使用它?
Jil*_*ouc 150
Info.plist:使用密钥添加新条目Fonts provided by application.在下面的例子中,我添加了字体"DejaVu Sans Mono":

在您的应用程序中,您可以使用[UIFont fontWithName:@"DejaVuSansMono-Bold" size:14.f].
或者如果你想在html/css中使用它,只需使用 font-family:DejaVu Sans Mono;
注意:这在iOS 3.2及更高版本中可用.
sim*_*ley 14
我发现这次演练是最好的
虽然上面接受的答案确实有效,但我发现如果你将文本添加到XIB文件然后将字体设置为我们的新字体,那么文本就不会更新.
确保新字体包含在资源中修复此问题(直接从演练中获取):
"这不应该是一个问题,但有时当你无法显示你的字体时,这可能是一个令人头痛的问题,所以现在让我们仔细检查,以排除它作为一个潜在的陷阱.
通过在解决方案资源管理器中突出显示XCode项目文件,转到项目"构建阶段"窗格,然后在右侧选择"构建阶段".您将看到可以扩展的部分之一是"复制捆绑资源".打开该列表,确保您的字体包含在该列表中."

演练中的其他内容是相同类型的东西(将文件添加到项目和plist文件中)
所有这些都归功于克里斯代码这个答案,这为我节省了大量的时间和精力,我只是从他的页面复制一个镜头,让这个答案自立,而不是要求你点击链接.
大多数时候我们忘记将字体添加到应用程序Target.确保你没有忘记这一重要步骤.注意右侧面板文件检查器>目标成员身份复选框.

此外,您还可以通过在应用上的任何位置运行此代码段来检查是否将wellher字体添加到您的应用程序中.
for (NSString* family in [UIFont familyNames])
{
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family])
{
NSLog(@" %@", name);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
字母顺序:
for (NSString* family in [[UIFont familyNames] sortedArrayUsingSelector:@selector(compare:)])
{
NSLog(@"%@", family);
for (NSString* name in [[UIFont fontNamesForFamilyName:family] sortedArrayUsingSelector:@selector(compare:)])
{
NSLog(@" %@", name);
}
}
Run Code Online (Sandbox Code Playgroud)
这将填充应用程序中可用字体的列表,其中还会显示添加的字体.
我认为开发人员将plist结构作为原始源代码更好.我要离开它进行复制/粘贴:
<key>UIAppFonts</key>
<array>
<string>Roboto-BoldItalic.ttf</string>
<string>Roboto-Medium.ttf</string>
<string>Roboto-MediumItalic.ttf</string>
<string>Roboto-Regular.ttf</string>
<string>Roboto-Bold.ttf</string>
</array>
Run Code Online (Sandbox Code Playgroud)
复制此代码段并将字符串键修改为所需字体.提示:要查看plist作为原始源代码,请单击文件上的辅助按钮,然后选择打开方式 - >源代码.
编辑
// Logs fonts ordered by name
for (NSString* family in [[UIFont familyNames] sortedArrayUsingSelector:@selector(compare:)])
{
NSLog(@"%@", family);
for (NSString* name in [[UIFont fontNamesForFamilyName:family] sortedArrayUsingSelector:@selector(compare:)])
{
NSLog(@" %@", name);
}
}
Run Code Online (Sandbox Code Playgroud)
添加字体后,可以添加到(例如)AppDelegate.m类,以查看真正的字体名称(在包上).我遇到的一个问题是我用错误的名称加载字体,假设字体文件名是正确的.有时它与捆绑实名不同.除此之外,您还可以使用finder(macOS)上的文件信息窗口(cmd + i)检查文件全名.
示例澄清:
文件名="DroidSansEthiopic-Regular"
处理名称在bundle ="Droid Sans Ethiopic"
| 归档时间: |
|
| 查看次数: |
61474 次 |
| 最近记录: |