非系统字体无法在iOS6上运行

时间:2014-01-15 18:48:52

标签: ios ios6 uifont

我之前从未遇到过这个问题。但除了系统字体外,我无法显示任何字体。我想使用helvetica,但那不起作用,我已经尝试将我的UILabel设置为Farah只是为了看它是否会起作用而它没有。但是,如果我在模拟器中运行(使用iOS7),那么它似乎工作正常。我试过在故事板上设置字体。然后尝试以编程方式设置它,

self.titleLabel.font = [UIFont fontWithName:@"Farah" size:25];

新的Xcode有什么变化,不允许使用非系统字体吗?

3 个答案:

答案 0 :(得分:2)

将所有非系统字体添加到您的应用程序中,并在“应用程序提供的字体”部分中包含.plist文件。 在应用程序中使用字体后:[UIFont fontWithName: @"TitilliumText25L-400wt" size:14];(将“TitilliumText25L-400wt”替换为相应的字体名称)。

附:如果您在检测真实字体名称时遇到问题,请使用FontBook应用程序或 下面的代码片段,显示应用程序的所有可用字体。

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

答案 1 :(得分:0)

fontWithName的参数必须是字体的真实姓名,而不是文件的名称。

如果您使用Mac Font Book打开ttf文件,您将直接在窗口顶部看到它的名称。

有关详情,请查看this

答案 2 :(得分:0)

获取正确的字体名称并不容易。运行此代码以了解可用的名称:

for (NSString* s in [UIFont familyNames])
    NSLog(@"%@: %@", s, [UIFont fontNamesForFamilyName:s]);

当然,如果设置self.titleLabel的功能不起作用,您还应该确保self.titleLabel不是零。