WatchKit,AttributedString 格式不起作用

WatchKit, AttributedString formatting not working

我正在构建我的第一个 WatchKit 应用程序,但在 NSAttributedString 格式设置方面遇到了问题,因为它似乎没有像我预期的那样工作 ;)

这是我的代码:

UIFont *textFont = [UIFont fontWithName:@"Menlo" size:30];
UIFont *hlFont = [UIFont fontWithName:@"Menlo-Bold" size:30];

NSMutableAttributedString *information = [[NSMutableAttributedString alloc]initWithString:@"ADDED AN ENTRY OF " attributes:@{NSFontAttributeName : textFont}];
NSString *amountString = [NSString stringWithFormat:@"%.2f",(-1)*handler.amount.floatValue];
NSNumber *underline = [NSNumber numberWithInt:NSUnderlineStyleSingle];
NSAttributedString *amount = [[NSAttributedString alloc]initWithString:amountString attributes:@{NSFontAttributeName : hlFont, NSUnderlineStyleAttributeName : underline }];

NSAttributedString *to = [[NSMutableAttributedString alloc]initWithString:@" TO " attributes:@{NSFontAttributeName : textFont}];

NSString *categoryString = handler.category;
NSAttributedString *category = [[NSAttributedString alloc]initWithString:categoryString attributes:@{NSFontAttributeName : hlFont, NSUnderlineStyleAttributeName : underline }];

[information appendAttributedString:amount];
[information appendAttributedString:to];
[information appendAttributedString:category];

[_informationLabel setAttributedText:information];

这是结果:

预期

10.00Stuff 应加下划线和粗体。

属性字符串在手表上的工作方式与在 iOS 上的工作方式有什么根本不同吗?我错过了什么?

通读:https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/TextandLabels.html

我不相信您可以通过编程将标签设置为粗体、斜体、下划线....这必须通过情节提要中的实际界面来完成。

根据this link

您可以配置的属性是

  1. 文字
  2. 文字颜色
  3. 字体
  4. 最小规模
  5. 对齐

一个可能的解决方法是合并多个标签,并将您需要的标签设置为正确的格式(粗体、下划线)

解决了,问题是字体@"Menlo"

通过使用

UIFont *textFont = [UIFont systemFontOfSize:20];
UIFont *hlFont = [UIFont systemFontOfSize:20];

带下划线的格式没问题。