我的项目中有一个RTF文件作为属性文本(iOS 7)加载到UILabel中。它显示为纯文本,没有格式。我认为这是一个字体问题,因为我在Xcode中选择的字体不一定是iOS中的字体。我想要的字体是Helvetica Neue或Helvetica。但我所选择的字体或样式都没有得到认可。
RTF:
iPad屏幕截图:
代码:
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}";
}
答案 0 :(得分:1)
如果我用一个只读的UITextView替换UILabel就行了。非常奇怪,因为文档表明UILabel会正确地执行此操作,但这是一个可行的解决方案。