NSAttributedString实际上就是一个字符串和一本字典。
字典包含每一个字符的属性:包括字体、大小、下划线、颜色等等。
关键是要知道字典中每个key的含义以及相应value的取值范围
Character Attributes(重点)
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 ; // <span style="color:#FF0000;">(********)不知道干嘛用</span>
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 ; // <span style="color:#FF0000;">(********)文本附件属性</span>, 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 ; // <span style="color:#FF0000;">(********)</span>书写方向,NSArray NSNumber(而且只能是整数0,1,2,3),没看到什么效果,找到案例再来更新
NSString *const NSVerticalGlyphFormAttributeName; // 水平或垂直显示,NSNumber(只有0:水平和1:垂直),没看到效果。。。
Text Writing Direction
用于"NSWritingDirectionAttributeName"
typedef enum : NSInteger {
NSTextWritingDirectionEmbedding = (0 << 1),
NSTextWritingDirectionOverride = (1 << 1)
} NSTextWritingDirection;
Text Effect Attribute
用于"NSTextEffectAttributeName"