我将NSAttributedString用于两件事:
1.使用HTML格式字符串填充UITextView
2.根据内容的长度调整TextView的大小
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[MyHTMLString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
myTextView.attributedText = attributedString;
UITextView *calculationView = [[UITextView alloc] init];
[calculationView setAttributedText:attributedString];
CGSize size = [calculationView sizeThatFits:CGSizeMake(screenWidth,FLT_MAX)];
CGRect frame_summary = CGRectMake(0, y, size.width, size.height);
myTextView.frame = frame_summary;
它在IOS 7.1上运行良好,但IOS 6.1在第一行崩溃(EXC_BAD_ACCES)
据我所知,NSAttributedString适用于IOS 6.
有任何线索吗?
最后在IOS 5上使用任何建议或任何替代方案?
提前致谢
答案 0 :(得分:1)
- (id)initWithData:(NSData *)data options:(NSDictionary *)options documentAttributes:(NSDictionary **)dict error:(NSError **)error
仅适用于iOS 7.0。 以及您在选项中使用的标志。 ( NSDocumentTypeDocumentAttribute 和 NSHTMLTextDocumentType )。
你应该改用:
- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
您可以像这样从NSData创建str
,例如:
- (NSString *)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding;
好运。