一.字符串分断显示不同大小、颜色字体
字体样式1.对array参数的介绍:
@[@{@"font":@14,@"color":RGB(51, 51, 51),@"point":@[@0,@3]},
@{@"font":@12,@"color":KMainOrange,@"point":@[@3,@1]},
@{@"font":@20,@"color":KMainOrange,@"point":@[@4,@(string.length - 4)]}]]
其中point字段中的数组,两个值是按照NSMakeRange()的格式去设置,第一个值代表开始的索引位置,第一个值代表长度length。
2.代码实现:
在.h中
+(NSMutableAttributedString *)editString:(NSString *)editStr array:(NSArray *)array;
在.m中
/// 动态编辑字符串大小、颜色
/// @param editStr 被编辑的字符串
/// @param array 编辑字符的数组格式 @[@{@"font":@15,@"color":RGB(51, 51, 51),@"point":@[@0,@2]}]
+(NSMutableAttributedString *)editString:(NSString *)editStr array:(NSArray *)array
{
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:editStr];
for (int i = 0; i < array.count; i++) {
NSDictionary * dict = array[I];
UIFont *font = [UIFont systemFontOfSize:[dict[@"font"] integerValue]];
NSArray * pointArray = dict[@"point"];
//设置字体大小
[attrString addAttribute:NSFontAttributeName value:font range:NSMakeRange([pointArray[0] integerValue],[pointArray[1] integerValue])];
UIColor * precedColor = dict[@"color"];
//设置第一部分的字体颜色
[attrString addAttribute:NSForegroundColorAttributeName value:precedColor range:NSMakeRange([pointArray[0] integerValue],[pointArray[1] integerValue])];
}
return attrString;
}
直接复制上面代码到静态类中,通过类方法调用,按照规则传入参数类型即可使用。此方法也可继续扩展,比如:字体是否加粗等设置。一样的原理,在.m方法的代码中加入对应的判断设置,在参数的对象中,再添加一个键值对进行配置即可。
网友评论