- 实例化方法和使用方法
实例化方法:
使用字符串初始化
- (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;
- 常见的属性及说明
2.实例设置文本的属性
//从网络获取的数组中拿到字典
NSDictionary *dataDic = @{@"Position":@"苏州",
@"TrueName":@"苏州***信息科技有限公司"};
//变换字体大小及颜色positionstr拼接设置一定的格式如(),{},[]……
NSString *positionStr = [NSString stringWithFormat:@"(%@)",dataDic[@"Position"]];
NSString *str = [NSString stringWithFormat:@"%@%@",dataDic[@"TrueName"],positionStr];
//初始化
NSMutableAttributedString *mutableStr = [[NSMutableAttributedString alloc]initWithString:str];
//限定范围
NSRange trueNameRange = [str rangeOfString:dataDic[@"TrueName"]];
NSRange positionRange = [str rangeOfString:positionStr];
//设置范围属性
[mutableStr addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:trueNameRange];
[mutableStr addAttribute:NSForegroundColorAttributeName value:[UIColor lightGrayColor] range:positionRange];
[mutableStr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16] range:trueNameRange];
[mutableStr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:13] range:positionRange];
//取出获得的数据,直接给label
nameLabel.attributedText = mutableStr;
具体的效果图,可以自己测试之后看到