iOS自定义字体问题

时间:2012-09-14 12:12:18

标签: objective-c ios xcode fonts

  

可能重复:
  Can I embed a custom font in an iPhone application?

我遇到了以下问题: 我必须使用以下字体: Helvetica Neue LT Pro 。中等浓缩和粗体浓缩款式。

我首先将它们作为otf文件使用,我在某处读到,将它们作为真实类型字体更好。所以我使用http://www.freefontconverter.com/

将它们转换为 .ttf 文件

我做了什么

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

2)我将其添加到Fonts provided by application的{​​{1}}条目中,其中包含我的2个文件的完整名称和扩展名:Info.plisthelveticaneueltprobdcn.ttf

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

helveticaneueltpromdcn.ttf

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

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

5)尝试使用 FAMILY: Helvetica Neue LT Pro HelveticaNeueLTPro-MdCn HelveticaNeueLTPro-BdCn 时仍然无法正常工作。这不是我要求的字体,我猜它没有找到它并使用系统默认值。如果我改变大小,则没有变化 - 我可以使用16或46的大小,结果是一样的。

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

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

谢谢。

此致

乔治

1 个答案:

答案 0 :(得分:0)

终于搞定了......

这就是我在做的事情:

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

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

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

问题在于,在我设置字体时,标签的父视图(MyCustomView实例)未添加到superview。

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

希望这有帮助。

干杯!