ios 开发关于NSMutableAttributedString的使用

iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
 在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求。之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦,而且很多UILabel的属性也不起作用了,效果都不理想。后来了解到NSMuttableAttstring(带属性的字符串),上面的一些需求都可以很简便的实现。
 
 1.     实例化方法和使用方法
 
 实例化方法:
 
 使用字符串初始化
 - (id)initWithString:(NSString *)str;
 例:
 NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"我们是一个大家庭,我们是一个大团队"];
 
 - (id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
 
 字典中存放一些属性名和属性值,如:
 NSDictionary *attributeDict = [NSDictionarydictionaryWithObjectsAndKeys:
 [UIFontsystemFontOfSize:15.0],NSFontAttributeName,
 [UIColorredColor],NSForegroundColorAttributeName,
 NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil];
 NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"我们是一个大家庭,我们是一个大团队" attributes:attributeDict];
 - (id)initWithAttributedString:(NSAttributedString *)attester;
 使用NSAttributedString初始化,跟NSMutableString,NSString类似
 
 使用方法:
 为某一范围内文字设置多个属性
 - (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;
 为某一范围内文字添加某个属性
 - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
 为某一范围内文字添加多个属性
 - (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;
 移除某范围内的某个属性

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

 改变字符串
 Changing characters
 
 - replaceCharactersInRange:withString:
 取代/替换字符串的长度
 - deleteCharactersInRange:
删除字符串的长度

 

 改变分组
 Grouping changes
 
 - beginEditing
 开始编辑
 - endEditing
 结束编辑

 改变字符及其属性
 Changing characters and attributes
 
 - appendAttributedString:
 附加字符
 - insertAttributedString:atIndex:
 根据位置插入新的字符
 - replaceCharactersInRange:withAttributedString:
 根据字符所在的区间取代某一范围的字符
 - setAttributedString:
 设置字符






 2.     常见的属性及说明
 


 
 
 
 
 NSFontAttributeName
 字体
 NSParagraphStyleAttributeName
 段落格式
 NSForegroundColorAttributeName
 字体颜色
 NSBackgroundColorAttributeName
 背景颜色
 NSStrikethroughStyleAttributeName
 删除线格式
 NSUnderlineStyleAttributeName
 下划线格式
 NSStrokeColorAttributeName
 删除线颜色
 NSStrokeWidthAttributeName
 删除线宽度
 NSShadowAttributeName
 阴影
 更多方法和属性说明详见苹果官方说明文档:
 https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSMutableAttributedString_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40003689
 3.   使用实例
 
 UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 500)];
 
 testLabel.backgroundColor = [UIColor lightGrayColor];
 
 testLabel.textAlignment = NSTextAlignmentCenter;
 
 NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"我们是一个大家庭,我们是一个大团队"];
 
 [AttributedStr addAttribute:NSFontAttributeName
 
 value:[UIFont systemFontOfSize:18.0]
 
 range:NSMakeRange(2, 2)];
 
 [AttributedStr addAttribute:NSForegroundColorAttributeName
 
 value:[UIColor redColor]
 
 range:NSMakeRange(2, 2)];
 
 testLabel.attributedText = AttributedStr;
 
 [self.view addSubview:testLabel];
 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值