富文本NSAttributedString与NSMutableAttributedString

NSAttributedString

NSAttributedString用来处理字符串,使在同一字符串内显示出不同属性的字符。(例如:用来处理字符串)总之就是可以设置字符串中指定位置或指定范围内字符的属性。

创建一个NSAttributedString对象

- (instancetype)initWithString:(NSString
*)aString  

使用字符串初始化对象

- (instancetype)initWithAttributedString:(NSAttributedString *)attributedString

使用NSAttributedString对象初始化

- (instancetype)initWithString:(NSString
*)aString

                    attributes:(NSDictionary
*)attributes

使用字符串和属性初始化对象

检索字符信息

string 获取对象的字符串信息

length 获取对象的字符串的长度

检索属性信息

- (NSDictionary
*)attributesAtIndex:(NSUInteger)index

                     effectiveRange:(NSRangePointer)aRange

获取指定位置上的属性信息,并返回与指定位置属性相同并且连续的字符串的范围信息。

例如:用来处理字符串  如果 index为2 ,那么aRange就是’处理’的位置信息。

如果你不需要 range 信息的话就传一个 nil (就像 &error )

- (NSDictionary
*)attributesAtIndex:(NSUInteger)index

              longestEffectiveRange:(NSRangePointer)aRange

                            inRange:(NSRange)rangeLimit

同上,只是在返回range信息做了一个限制rangeLimit

- (id)attribute:(NSString
*)attributeName

        atIndex:(NSUInteger)index

 effectiveRange:(NSRangePointer)aRange

获取指定位置上指定属性名称的值,attributeName即为指定的属性名称。并返回range信息

- (id)attribute:(NSString
*)attributeName

        atIndex:(NSUInteger)index

longestEffectiveRange:(NSRangePointer)aRange

        inRange:(NSRange)rangeLimit

获取指定位置上指定属性名称的值,attributeName即为指定的属性名称。并返回限定范围内的range信息

对象间的比较

- (BOOL)isEqualToAttributedString:(NSAttributedString *)otherString

与另一个 NSAttributedString 对象做对比返回bool值。

这里的相等不仅仅是字符串相等,连带这所有关联的属性也要相等

获取对象Substring

- (NSAttributedString *)attributedSubstringFromRange:(NSRange)aRange

获取指定范围内的子字符串

枚举字符串上覆盖的属性信息

- (void)enumerateAttribute:(NSString
*)attrName

                   inRange:(NSRange)enumerationRange

                   options:(NSAttributedStringEnumerationOptions)opts

                usingBlock:(void (^)(id value,

NSRange range,

BOOL *stop))block

枚举指定范围内指定属性名称的值信息和range信息

- (void)enumerateAttributesInRange:(NSRange)enumerationRange

                           options:(NSAttributedStringEnumerationOptions)opts

                        usingBlock:(void (^)(NSDictionary
*attrs,

NSRange range,

BOOL *stop))block

枚举指定范围内的属性信息和range信息

NSMutableAttributedString

NSAttributedString
NSMutableAttributedString是一组处理字符串属性的类。NSAttributedString处理的是不可变的富文本字符串,而NSMutableAttributedString处理的是可变的。

NSMutableAttributedString你可以添加或删除字符和属性。

检索字符信息

mutableString  获取对象的字符内容

改变字符

- (void)replaceCharactersInRange:(NSRange)aRange

                      withString:(NSString
*)aString

用aString替换特定范围内的字符。

特别的:新替换上去的字符会继承在aRange范围内的第一个字符的属性信息,当aRange的length为0时,如果在aRange位置之前的字符有特定属性,那么新字符串就继承。否则就继承aRange位置之后的。

- (void)deleteCharactersInRange:(NSRange)aRange

删除aRange范围内的字符

改变属性

- (void)setAttributes:(NSDictionary
*)attributes

                range:(NSRange)aRange

设置 aRange 范围内的字符属性为 attributes

- (void)addAttribute:(NSString
*)name

               value:(id)value

               range:(NSRange)aRange

设置 aRange范围内,名为 name的属性的值 value

- (void)addAttributes:(NSDictionary
*)attributes

                range:(NSRange)aRange

在指定范围内添加属性

- (void)removeAttribute:(NSString
*)name

                  range:(NSRange)aRange

删除指定范围内指定名称的属性

改变字符和属性

- (void)appendAttributedString:(NSAttributedString
*)attributedString

在富文本结尾添加指定的富文本(含字符和属性)

- (void)insertAttributedString:(NSAttributedString
*)attributedString

                       atIndex:(NSUInteger)index

在指定位置插入富文本,原富文本会根据 attributedString的length而从index的开始位置移动变化

- (void)replaceCharactersInRange:(NSRange)aRange

            withAttributedString:(NSAttributedString
*)attributedString

替换指定范围内的字符及属性

- (void)setAttributedString:(NSAttributedString
*)attributedString

用指定富文本 attributedString替换现有的

Grouping changes

- (void)beginEditing//开始编辑

- (void)endEditing //结束编辑

今天就到这里 ————
LC

PS:文章一上传格式就全变了,真是无语

时间: 2024-07-29 22:37:44

富文本NSAttributedString与NSMutableAttributedString的相关文章

iOS富文本-NSAttributedString简单封装

直接调用系统的写起来比较麻烦,封装一下 因为要简单所以就写类方法 WJAttributeStyle 基类 #import <Foundation/Foundation.h>#import <UIKit/UIKit.h>/** *  基类富文本 */@interface WJAttributeStyle : NSObject @property (nonatomic,strong)NSString *attributeName;@property (nonatomic,strong)

富文本的封装-NSAttributedString 的简易封装

有时我们经常写富文老是写出这样子的出来,极易出错而且可读性非常差,如下: - (void)typeOne{ NSString *string                            = @"你好,CSDN!"; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string]; // 设置富文本样式 [attributedStrin

ios中label富文本的设置

1.修改不同文字和颜色 // 创建一个富文本 NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:@"哈哈哈哈哈123456789"]; // 修改富文本中的不同文字的样式 [attri addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, 5

iOS之富文本(一)

NSAttributedString叫做富文本,是一种带有属性的字符串,通过它可以轻松的在一个字符串中表现出多种字体.字号.字体大小等各不相同的风格,还可以对段落进行格式化. 通过以下代码即可实现上面图示效果,十分方便,从此再也不用设置两个UILable,并且处心积虑的处理它们的长度了. 1 UILabel * aLable = [[UILabel alloc] initWithFrame:CGRectMake(100, 500, 200, 40)]; 2 aLable.textAlignmen

UILabel添加图片之富文本的简单应用

若想对UILabel添加图片,那么就需要使用NSMutableAttributedString来定义先定义一个普通的label UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, self.view.frame.size.width-10, 100)]; lab.numberOfLines = 0; [self.view addSubview:lab]; 然后对其定义 //创建富文本 NSMutableAttribut

富文本常用封装(NSAttributedString浅析)

最近经常遇到关于富文本的一些需求,特此封装了几个最常用的API分享给大家,但授之以鱼不如授之以渔,接下来会顺便谈谈NSAttributedString,确保你读了本篇文章能够自己封装关于富文本的API,本文封装API的示例Demo再此,拿去用吧!骚年们! 一.常用需求封装 需求:在我们日常开发中,某些句子中会有改变某些字颜色的需求,当然颜色一般而言就是为了着重强调,常为同一种颜色,所以下面代码是单纯改变一句话中的某些字的颜色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

富文本常用封装(NSAttributedString)

最近经常遇到关于富文本的一些需求,特此封装了几个最常用的API分享给大家,但授之以鱼不如授之以渔,接下来会顺便谈谈NSAttributedString,确保你读了本篇文章能够自己封装关于富文本的API,本文封装API的示例Demo再此,拿去用吧!骚年们! 一.常用需求封装 需求:在我们日常开发中,某些句子中会有改变某些字颜色的需求,当然颜色一般而言就是为了着重强调,常为同一种颜色,所以下面代码是单纯改变一句话中的某些字的颜色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

利用 NSAttributedString 进行富文本处理

原文出自  http://blog.qiji.tech/archives/8335#RegEx_Categories [iOS] 利用 NSAttributedString 进行富文本处理 /iOS /[iOS] 利用 NSAttributedString 进行富文本处理 2016年4月4日 刘小龙 iOS 许多时候我们需要以各种灵活的形式展现文本信息,即富文本.普通的 text 属性显然无法满足要求,这时我们需要利用 Foundation 中的 NSAttributedString——属性字符

iOS学习之NSAttributedString(富文本)

NSAttributedString 叫做富文本,是一种带有属性的字符串,通过它可以轻松的在一个字符串中表现出多种字体.字号.字体大小等各不相同的风格,还可以对段落进行格式化,一般都是对可变富文本(NSMutableAttributedString)进行一些操作 一.NSMutableAttributedString 类的部分常用方法 // 在一定范围中添加单个文字属性 // 参数1:字符属性名 // 参数2:属性值 // 参数3:范围 - (void)addAttribute:(NSStrin