Apple Watch 无法更改标签中的字体

Apple Watch can't change font in label

我无法更改标签中的字体。 我在 WatchKit App 和 WatchKit Extension 的 Info.plist 中添加了 "Font provided by application",并在 Bundle Recourse 这两个项目中添加了字体。 当我编译代码时 for (NSString* family in [UIFont familyNames]) NSLog(@"|%@"",family); 我发现连接的所有字体列表:“|Courier New|” 但它不起作用:

    NSMutableAttributedString *attString =[[NSMutableAttributedString alloc]
     initWithString: @"Yano rocks! Always"];

    [attString setAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Courier New" size:20.0]} range:NSMakeRange(0, attString.string.length)];

    [self.loadingLabel setAttributedText:attString];

UIFont* labelFont = [UIFont fontWithName:@"Courier New" size:16];
NSAttributedString* lab = [[NSAttributedString alloc] 
initWithString:@"Text" attributes:@{NSFontAttributeName: labelFont}];
[self.label setAttributedText:lab];

另外,任何系统字体都不行!

请帮忙!

p.s。我按照说明做了所有事情:[link] (http://www.tech-recipes.com/rx/53710/how-do-i-use-custom-fonts-in-my-apple-watch-app/)

我使用 Watch App(不是 Notification 和 Glance)。

我在我的 WKInterfaceLabel 上使用看起来像你的代码设置了字体。这里有一些要检查的东西,看看你是否能找出问题所在。

  1. 检查并确保您确实将 self.label 连接到情节提要中的正确标签。 运行 调试器并确保 self.label 不为零。

  2. 运行 调试器并确保 labelFont 不为零。如果为 nil,请尝试使用系统字体并重新返回 "Courier New"。

这是我用来设置字体的代码。这实际上在标签中设置了两种不同的字体,使单位尺寸更小。

-(void)setValue:(NSString*)value withUnits:(NSString*)units onLabel:(WKInterfaceLabel*)lable useLargeSize:(BOOL)useLargeSize
{
    NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithString:[value stringByAppendingString:units]];

    if (useLargeSize)
    {
        [str setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:36]} range:NSMakeRange(0, value.length)];
        [str setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:18]} range:NSMakeRange(value.length, units.length)];
    }
    else
    {
        [str setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:16]} range:NSMakeRange(0, value.length)];
        [str setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:10]} range:NSMakeRange(value.length, units.length)];
    }
    [lable setAttributedText:str];

}

我明白问题出在哪里了。 Xcode不建立Arial、Courier等标准字体,而是安装系统中没有的、从网上下载的字体。 所以当我输入 Arial 和 Courier 时,什么也没有发生。