导航栏中带有UILabel的自定义字体

时间:2013-01-30 20:09:25

标签: iphone objective-c uilabel uinavigationitem uifont

  

可能重复:
  Custom font in iPhone

我正在尝试创建自定义标签,将其设置为titleView的{​​{1}},但我无法将标签字体设置为我项目中包含的自定义字体。

我有一个名为“BADER_AL_GORDABIA-2_0.ttf”的自定义字体文件,FontBook中显示的真实字体名称是“bader_al gordabia-2” 我已按照以下步骤操作:

  1. 检查了我的应用的部署目标,并将其设置为iOS 5.1
  2. 将字体文件添加到项目资源中,并验证是否已在Build Phases的“Copy Bundle Resources”中添加到构建目标。
  3. 在我的info.plist文件中添加了一个新密钥,作为“应用程序提供的字体”,并在其中添加了“BADER_AL_GORDABIA-2_0.ttf”。
  4. 在fontWithName方法中使用了真实的字体名称“bader_al gordabia-2”。
  5. 我可以使用

    加载字体
    navigationItem

    我确保customFont不为null(通过打印其描述),但问题是我无法将此自定义字体应用于UILabel。

    我的代码是:

    UIFont * customFont = [UIFont fontWithName:@"bader_al gordabia-2" size:18.0f];
    

    我试图搜索堆栈溢出,但我找不到合适的答案。 我还尝试使用以下链接中指定的自定义标签: http://refactr.com/blog/2012/09/ios-tips-custom-fonts/

2 个答案:

答案 0 :(得分:1)

我就是这样做的,

UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 100)];

navLabel.backgroundColor = [UIColor clearColor];
navLabel.text = @"Set Up";
navLabel.textColor = [UIColor whiteColor];
navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:1.0];
navLabel.shadowOffset = CGSizeMake(0, -2);
navLabel.font = [UIFont fontWithName:@"Questrial" size:28.0];
navLabel.textAlignment = UITextAlignmentCenter;
self.navigationItem.titleView = navLabel;
[navLabel release];

只有上面的代码不起作用...所以你需要转到你的app plist文件并添加一个新行并将这个键添加到行中,

Fonts provided by application

并将字体名称添加到item0的值

根据我的代码," Questrial-Regular.ttf"

另外一件事,

也就是说,您可能无法正确了解字体名称。所以你需要找到正确的字体名称。将此代码添加到ViewdidLoad中,它会将系列名称记录到终端。

NSLog(@"%@",[UIFont familyNames]);

您可以根据您的字体找到正确的字体名称。

按照这个步骤,它对我有用,我认为它也会对你有帮助。

答案 1 :(得分:0)

以下是您应该做的事情 - 首先在任何地方添加并调用以下方法:

+(void)logAllFonts{
    NSArray *fontFamilies = [UIFont familyNames];

    for (int i = 0; i < [fontFamilies count]; i++)
    {
      NSString *fontFamily = [fontFamilies objectAtIndex:i];
      NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
      NSLog(@"%@: %@", fontFamily, fontNames);
    }
 }

这将记录项目中存在的所有fontNames,包括您在项目和plist中添加的外部字体。

现在,您将在控制台中查看该列表,并找到您添加的字体的确切字体名称(bader_al gordabia-2)。在fontWithName中使用此名称:

希望这有帮助