自定义字体 Xcode 4.3
Posted
技术标签:
【中文标题】自定义字体 Xcode 4.3【英文标题】:Custom Fonts Xcode 4.3 【发布时间】:2012-03-14 23:58:30 【问题描述】:我正在尝试在我的项目中使用this font,但它不起作用。 我在我的项目中添加了 .ttf 文件,并将其名称添加到 MyApp-Info.plist 中的键下:Fonts provided by application。然后我尝试了这个:
[_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];
我还检查了字体的名称是否真的是“黑板”,它是。显示的字体仍然是 Helvetica,只是更小了。问题可能出在哪里? 提前致谢。
【问题讨论】:
自从迁移到 Xcode 4.3 后,我也遇到了这个问题。无论我做什么,都不会安装自定义字体。 【参考方案1】:您需要使用字体名称,而不是文件名。字体名称在 ttf 文件中。
您可以在此处找到适用于 ios 的字体名称:http://iosfonts.com/
此代码将列出您应用中的所有字体名称,将其放在主控制器的 viewDidLoad 中某处,运行应用,然后在控制台中找到正确的字体名称。
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
更新。
您也可以在 Finder 中右键单击字体文件,获取信息并复制全名。但这并不总是 100%。
【讨论】:
正如我所说,我实际上使用了字体名称,我打开字体时看到的那个,它不起作用。不幸的是(尝试打开链接)我将使用的黑板字体与 iO 上安装的字体不同.. 你试过[_titleLabel setFont:[UIFont fontWithName:@"Chalkboard-Regular" size:_titleLabel.font.pointSize]]; 尝试用这个代码找出姓氏(我更新了我的答案) @Flink:您是否尝试过在 Xcode 4.3 中安装了自定义字体的字体列表代码?因为它对我没有用。 有人找到这个问题的答案吗?我在 4.3.2 上,可以确认自定义字体出现在上述字体列表代码中,但没有显示在身份浏览器的列表中。【参考方案2】:Flinks answer 是一个方便的工具,可以检查您的字体是否正确加载。
执行以下操作:
[_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];
确保您的字体包含在您的捆绑包中:
点击您的项目 转到build phases
在'Copy Bundle Resources'
下,
确保包含您的字体
为我工作:)
【讨论】:
感谢您的回答。这是我正在寻找的“缺失的一步”。 ;-) 我多年来一直在寻找这个问题的答案!吸引我的是“复制捆绑资源”!非常感谢! 在 4.3.2 之前我从来不需要“复制捆绑资源”步骤,所以我很高兴在拔掉头发五个小时后找到了这个。 感谢复制捆绑资源。我欠你一大品脱德国啤酒;) 会一直告诉你的,谢谢 ;) 但说真的,很高兴我能帮上忙 :)【参考方案3】:Xcode 4.3.1 自定义字体有问题。因为当我创建新项目并尝试在 Xcode 4.2.1 中添加自定义字体时没有问题。
我做了好几次。 有趣...
【讨论】:
【参考方案4】:根据我的经验,并非“所有”字体都兼容。大多数工作,但您会遇到一些字体,无论您如何努力,由于某种原因无法通过代码识别...只是提醒任何有问题的人,请尝试另一种字体!
【讨论】:
当我尝试添加 Bitstream Vera Sans Mono 时,我以为我会遇到一个。事实证明,上述步骤非常适合将字体添加到应用程序。我在 UITableView 中显示良好,但它似乎不能作为 drawInRect 的字体选择。【参考方案5】:-
在 XCode 项目中包含字体
确保它们包含在文件检查器选项卡中的目标成员中
在项目名称 > 构建阶段 > 复制捆绑资源中包含您的字体
在您的应用程序列表中包含您的 iOS 自定义字体。添加一个名为“应用程序提供的字体”的新行,并将您的字体名称和扩展名作为参数。
找到字体的名称。
使用 UIFont 并指定字体的名称。
UILabel *headingLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 290, 300, 30)]; headerLabel.text = @"欢迎"; headingLabel.font = [UIFont fontWithName:@"Arvo" size:14.0];
【讨论】:
【参考方案6】:并非您导入的所有字体都有效。只是尝试测试另一种字体。如果它有效,则 Xcode 无法识别它。请记住,它必须在您的项目 plist 文件中,并且必须是 plist 中的“.otf”或“.ttf”之类的扩展名。并将其添加到目标下的“复制捆绑资源”中
【讨论】:
以上是关于自定义字体 Xcode 4.3的主要内容,如果未能解决你的问题,请参考以下文章