HTML文本的显示依靠NSAttributedString这个类
NSHTMLTextDocumentType 只是NSDocumentTypeDocumentAttribute key一种可能的值。你还可以使用NSPlainTextDocumentType,NSRTFTextDocumentType或是 NSRTFDTextDocumentType。
//读取html
NSString *html = @”Wow! Now iOS can create from HTMLs!”;
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF8StringEncoding] options:options documentAttributes:nil error:nil];
//构建html
NSAttributedString * attrString;
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSData *htmlData = [attrString dataFromRange:NSMakeRange(0, [attrString length]) documentAttributes:options error:nil];
NSString *htmlString = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
NSAttributedString的key的意义
NSString *const NSFontAttributeName ; // 设置字体,UIFont对象,默认12-point Helvetica(Neue)
NSString *const NSParagraphStyleAttributeName ; // (重要)设置段落风格,NSParagraphStyle对象,默认是[NSParagraphStyle defaultParagraphStyle],这里可以设置很多段落格式,首行缩进之类的
NSString *const NSForegroundColorAttributeName ; // 字体颜色,UIColor对象,默认黑色
NSString *const NSBackgroundColorAttributeName ; // 背景色,UIColor对象,默认透明
NSString const NSLigatureAttributeName ; // (***)不知道干嘛用
NSString *const NSKernAttributeName ; // 字符间距,NSNumber 浮点数,默认为0
NSString *const NSStrikethroughStyleAttributeName ; // 删除线的线粗,NSNumber 整数,默认是NSUnderlineStyleNone(你真的没看错)
NSString *const NSUnderlineStyleAttributeName ; // 下划线的线粗,NSNumber 整数,默认同上,还有别的样式,例如双下划线
NSString *const NSStrokeColorAttributeName ; // 描边颜色,UIColor对象,默认同字体颜色
NSString *const NSStrokeWidthAttributeName ; // 描边,NSNumber 浮点数,正值表示镂空描边,负值标志填充描边,值表示描边线粗
NSString *const NSShadowAttributeName ; // 阴影,NSShadow对象,效果参照最后的图片
NSString *const NSTextEffectAttributeName ; // 文本风格,NSSting对象,默认为nil,官方举例NSTextEffectLetterpressStyle,其实也就只有这个风格。。。感觉有跟没有差不多
NSString const NSAttachmentAttributeName ; // (***)文本附件属性, NSTextAttachment对象,其中包含有图片,等我找到典型案例再回来重新介绍
NSString *const NSLinkAttributeName ; // 链接某个地址,NSURL(推荐)或NSString对象,默认为nil不指定任何链接。这里有详细介绍,http://blog.csdn.net/reylen/article/details/18958995
NSString *const NSBaselineOffsetAttributeName ; // 基线偏移量,NSNumber 浮点数,可以上下微调字体的位置。(适合那些返回位置信息不正确的字体)
NSString *const NSUnderlineColorAttributeName ; // 下划线颜色
NSString *const NSStrikethroughColorAttributeName ; // 删除线颜色
NSString *const NSObliquenessAttributeName ; // 斜体,NSNumber 浮点数,默认0,数值表示倾斜度
NSString *const NSExpansionAttributeName ; // 水平拉伸,NSNumber 浮点数,默认0,水平拉伸字体,高度不变。
NSString const NSWritingDirectionAttributeName ; // (***)书写方向,NSArray NSNumber(而且只能是整数0,1,2,3),没看到什么效果,找到案例再来更新
NSString *const NSVerticalGlyphFormAttributeName; // 水平或垂直显示,NSNumber(只有0:水平和1:垂直),没看到效果。。。