UILabel不从RTF应用属性文本样式

时间:2014-07-11 14:03:00

标签: ios ios7 nsattributedstring

我的项目中有一个RTF文件作为属性文本(iOS 7)加载到UILabel中。它显示为纯文本,没有格式。我认为这是一个字体问题,因为我在Xcode中选择的字体不一定是iOS中的字体。我想要的字体是Helvetica Neue或Helvetica。但我所选择的字体或样式都没有得到认可。

RTF:

enter image description here

iPad屏幕截图:

enter image description here

代码:

NSError *error = nil;
NSURL *resourceURL = [[NSBundle mainBundle] URLForResource:@"terms-english" withExtension:@"rtf"];
NSDictionary *docAttributes = nil;
[self.termsLabel setAttributedText:
  [[NSAttributedString alloc] initWithFileURL:resourceURL
                                      options:nil
                           documentAttributes:&docAttributes
                                        error:&error]];

错误为nil且docAttributes回来看起来是正确的:

{
  BottomMargin = 72;
  CocoaRTFVersion = "1265.21";
  DefaultTabInterval = 36;
  DocumentType = NSRTF;
  HyphenationFactor = 0;
  LeftMargin = 72;
  PaperMargin = "UIEdgeInsets: {72, 72, 72, 72}";
  PaperSize = "NSSize: {612, 792}";
  RightMargin = 72;
  TopMargin = 72;
  UTI = "public.rtf";
  ViewSize = "NSSize: {450, 420}";
}

1 个答案:

答案 0 :(得分:1)

如果我用一个只读的UITextView替换UILabel就行了。非常奇怪,因为文档表明UILabel会正确地执行此操作,但这是一个可行的解决方案。