1

可能重复:
我可以在 iPhone 应用程序中嵌入自定义字体吗?

我陷入了以下问题:我必须使用以下字体:Helvetica Neue LT Pro。中等压缩和粗体压缩样式。

我首先将它们作为 otf 文件,然后我在某处读到,将它们作为true-type字体可能会更好。所以我使用http://www.freefontconverter.com/将它们转换为.ttf文件

我做了什么

1)我在资源包中添加了字体,检查以确保它们在Copy Bundle Resources部分中列出。

2)我将它们添加到Fonts provided by application条目中Info.plist,并带有我的 2 个文件的完整名称和扩展名:helveticaneueltprobdcn.ttfhelveticaneueltpromdcn.ttf

3)我使用此代码检查字体是否已安装并获取名称:

for (NSString *familyName in [UIFont familyNames])
            {
                NSLog(@"----------------");
                NSLog(@"FAMILY: %@", familyName);
                for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
                {
                    NSLog(@"  %@", fontName);
                }
            }

4)字体在那里列出,如下所示:

 FAMILY: Helvetica Neue LT Pro
   HelveticaNeueLTPro-MdCn
   HelveticaNeueLTPro-BdCn

5)尝试使用时仍然无法正常工作[UIFont fontWithName:@"HelveticaNeueLTPro-BdCn" size:16]。这不是我要求的字体,我猜它没有找到它并使用系统默认值。如果我更改 size ,则没有任何变化 - 我可以使用 size 16 或 46 ,结果是一样的。

6)我尝试删除并重新安装应用程序,在 XCode 中清理项目,我能想到的一切。

有谁知道为什么这不起作用?我google了很多,我找不到解决方案。如果重要的话,我正在使用XCode 4.3.2、iOS SDK 5.1并在安装了 iOS 5.1.1 的 iPad 上运行。

谢谢你。

问候,

乔治

4

1 回答 1

0

终于明白了...

这就是我正在做的事情:

MyCustomView *view = [[MyCustomView alloc] init];
//bla bla

在 MyCustomView.m 中,在 init 方法中我有这个:

- (id) init
{
     //create some labels and set their fonts.
}

问题是在我设置字体时,标签的父视图( MyCustomView 实例)没有添加到超级视图中。

我在 MyCustomView 实例上调用 init 之后创建了一个setFonts方法,当我在那里设置字体时,它起作用了!

希望这可以帮助。

干杯!

于 2012-09-14T15:23:16.127 回答