怎么在iOS中使用NSMutableAttributedString实现富文本

今天就跟大家聊聊有关怎么在iOS中使用NSMutableAttributedString实现富文本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联公司是专业的伊春网站建设公司,伊春接单;提供做网站、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行伊春网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

NSAttributedString

NSAttributedString对象管理适用于字符串中单个字符或字符范围的字符串和关联的属性集(例如字体和字距)。NSAttributedString对象的默认字体是Helvetica 12点,可能与平台的默认系统字体不同。因此,您可能希望创建适用于您的应用程序的非默认属性的新字符串。您还可以使用NSParagraphStyle类及其子类NSMutableParagraphStyle来封装NSAttributedString类使用的段落或标尺属性。

实例化方法和使用方法

实例化方法

使用字符串初始化

- (instancetype)initWithString:(NSString *)str;

代码示例

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"测试数据"];

字典中存放一些属性名和属性值

- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;

代码示例

NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"测试数据" attributes:attributedDict];

使用NSAttributedString初始化,与NSMutableString,NSString类似

- (instancetype)initWithAttributedString:(NSAttributedString *)attrStr;

使用方法

为某一范围内的文字设置多个属性的方法

- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

//代码示例

NSString *string = @"测试数据";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString setAttributes:attributedDict range:NSMakeRange(0, string.length)];

为某一范围内的文字添加某个属性的方法

- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;

//代码示例

NSString *string = @"测试数据";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, string.length)];

为某一范围内的文字添加多个属性的方法

- (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

//代码示例

NSString *string = @"测试数据";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];

移除某个范围内的某个属性的方法

- (void)removeAttribute:(NSString *)name range:(NSRange)range;

//代码示例

 NSString *string = @"测试数据";
 NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];
 
 
[attributedString removeAttribute:NSForegroundColorAttributeName range:NSMakeRange(0, string.length)];

属性及说明

key说明
NSFontAttributeName字体,value是UIFont对象
NSParagraphStyleAttributeName绘图的风格(居中,换行模式,间距等诸多风格),value是NSParagraphStyle对象
NSForegroundColorAttributeName文字颜色,value是UIFont对象
NSLigatureAttributeName字符连体,value是NSNumber
NSKernAttributeName字符间隔
NSStrikethroughStyleAttributeName删除线,value是NSNumber
NSUnderlineStyleAttributeName下划线,value是NSNumber
NSStrokeColorAttributeName描绘边颜色,value是UIColor
NSStrokeWidthAttributeName描边宽度,value是NSNumber
NSShadowAttributeName阴影,value是NSShadow对象
NSTextEffectAttributeName文字效果,value是NSString
NSAttachmentAttributeName附属,value是NSTextAttachment 对象
NSLinkAttributeName链接,value是NSURL or NSString
NSBaselineOffsetAttributeName基础偏移量,value是NSNumber对象
NSStrikethroughColorAttributeName删除线颜色,value是UIColor
NSObliquenessAttributeName字体倾斜
NSExpansionAttributeName字体扁平化
NSVerticalGlyphFormAttributeName垂直或者水平,value是 NSNumber,0表示水平,1垂直

富文本段落排版格式属性说明

属性说明
lineSpacing字体的行间距
firstLineHeadIndent首行缩进
alignment(两端对齐的)文本对齐方式:(左,中,右,两端对齐,自然)
lineBreakMode结尾部分的内容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz")
headIndent整体缩进(首行除外)
minimumLineHeight最低行高
maximumLineHeight最大行高
paragraphSpacing段与段之间的间距
paragraphSpacingBefore段首行空白空间
baseWritingDirection书写方向(一共三种)
hyphenationFactor连字属性 在iOS,唯一支持的值分别为0和1

看完上述内容,你们对怎么在iOS中使用NSMutableAttributedString实现富文本有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


文章标题:怎么在iOS中使用NSMutableAttributedString实现富文本
地址分享:http://scyanting.com/article/ijjhog.html