iOS NSAttributedString(属性字符串)

本文详细探讨了iOS中的NSAttributedString,它是一个字符串与属性字典的结合体,用于设定字符串的字体、大小、下划线、颜色等属性。文章重点介绍了Character Attributes,包括Text Writing Direction、Text Effect Attribute、Underline and Strikethrough Style Attributes,以及String Drawing Options。同时,提到了在iOS 7之后废弃的Keys for Text Attributes Dictionaries,和可用的NSTextAlignment、UIBaselineAdjustment常量。此外,还概述了UITextViewDelegate的调用流程。最后,提到了相关的类定义如UITextView、NSAttributedString和代理协议,以及NSShadow的shadow属性。文章鼓励读者在遇到iOS文字处理问题时进行交流讨论。
摘要由CSDN通过智能技术生成

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"


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值