iOS|iOS 一个label里面的文字显示不同的颜色和大小

【iOS|iOS 一个label里面的文字显示不同的颜色和大小】最近换了家公司,博主一直忙着做项目,没时间更,没能给大家带来更多的帮助,惭愧,趁现在抽出点时间,把最近用到的一个简便的小工具发布出来,仅供大家参考:
在一个label里面的文字显示不同的颜色和大小:
先晒出.h文件里面的类方法名称:

#import @interface LHYMutableAttributedString : NSMutableAttributedString/** *单纯改变一句话中的某些字的颜色 * *@param color需要改变成的颜色 *@param totalStr 总的字符串 *@param subArray 需要改变颜色的文字数组 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeCorlorWithColor:(UIColor *)color TotalString:(NSString *)totalStr SubStringArray:(NSArray *)subArray; /** *单纯改变句子的字间距(需要 ) * *@param totalString 需要更改的字符串 *@param space字间距 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeSpaceWithTotalString:(NSString *)totalString Space:(CGFloat)space; /** *同时更改行间距和字间距 * *@param totalString 需要改变的字符串 *@param lineSpace行间距 *@param textSpace字间距 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeLineAndTextSpaceWithTotalString:(NSString *)totalString LineSpace:(CGFloat)lineSpace textSpace:(CGFloat)textSpace; /** *改变某些文字的颜色 并单独设置其字体 * *@param font设置的字体 *@param color颜色 *@param totalString 总的字符串 *@param subArray想要变色的字符数组 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeFontAndColor:(UIFont *)font Color:(UIColor *)color TotalString:(NSString *)totalString SubStringArray:(NSArray *)subArray;

在.h文件里声明了改变不同形式的类方法名称,喜欢的直接利用起来.
下面是.m实现的方法
#import "LHYMutableAttributedString.h" #import @implementation LHYMutableAttributedString//需求:在我们日常开发中,某些句子中会有改变某些字颜色的需求,当然颜色一般而言就是为了着重强调,常为同一种颜色,所以下面代码是单纯改变一句话中的某些字的颜色/** *单纯改变一句话中的某些字的颜色 * *@param color需要改变成的颜色 *@param totalStr 总的字符串 *@param subArray 需要改变颜色的文字数组 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeCorlorWithColor:(UIColor *)color TotalString:(NSString *)totalStr SubStringArray:(NSArray *)subArray { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalStr]; for (NSString *rangeStr in subArray) { NSRange range = [totalStr rangeOfString:rangeStr options:NSBackwardsSearch]; [attributedStr addAttribute:NSForegroundColorAttributeName value:color range:range]; } return attributedStr; }// 需要更改字间距来适应整体UI /** *单纯改变句子的字间距(需要 ) * *@param totalString 需要更改的字符串 *@param space字间距 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeSpaceWithTotalString:(NSString *)totalString Space:(CGFloat)space { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; long number = space; CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number); [attributedStr addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])]; CFRelease(num); return attributedStr; }/** *同时更改行间距和字间距 * *@param totalString 需要改变的字符串 *@param lineSpace行间距 *@param textSpace字间距 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeLineAndTextSpaceWithTotalString:(NSString *)totalString LineSpace:(CGFloat)lineSpace textSpace:(CGFloat)textSpace { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:lineSpace]; [attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [totalString length])]; long number = textSpace; CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number); [attributedStr addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])]; CFRelease(num); return attributedStr; }//需求:更改某些文字的颜色并修改其字体,突出重点强调 /** *改变某些文字的颜色 并单独设置其字体 * *@param font设置的字体 *@param color颜色 *@param totalString 总的字符串 *@param subArray想要变色的字符数组 * *@return 生成的富文本 */ + (NSMutableAttributedString *)ls_changeFontAndColor:(UIFont *)font Color:(UIColor *)color TotalString:(NSString *)totalString SubStringArray:(NSArray *)subArray { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; for (NSString *rangeStr in subArray) { NSRange range = [totalString rangeOfString:rangeStr options:NSBackwardsSearch]; [attributedStr addAttribute:NSForegroundColorAttributeName value:color range:range]; [attributedStr addAttribute:NSFontAttributeName value:font range:range]; } return attributedStr; } @end

实现类的方法博主也已经分享给大家了,至于怎么使用的呢... 帮人帮到底吧 我给大家举个例子看一下:
首先引入.m文件
#import "LHYMutableAttributedString.h" //创建Label我就不再赘述了. self.testLabe.text = @"凯里~谁也防不住~欧文"; NSArray *arr = @[@"谁",@"防",@"欧文"]; NSMutableAttributedString *attributedStringM = [[NSMutableAttributedString alloc] init]; attributedStringM = [LHYMutableAttributedString ls_changeFontAndColor:[UIFont boldSystemFontOfSize:10] Color:[UIColor redColor] TotalString:_testLabe.text SubStringArray:arr]; self.testLabe.attributedText = attributedStringM;

嗯... 效果是这个样子的

iOS|iOS 一个label里面的文字显示不同的颜色和大小
文章图片
3E2FD00A-0E9C-46C2-AAB9-4066A519243B.png 相信大家看了之后应该能明白我要表达什么意思了吧? 也应该知道这个玩意到底怎么用的了是吧
.
.
.
.
还是那句话,能帮到你,才是我最大的成就. 谢谢.....
欢迎大家指点,交流,我看到会第一时间回复,除非没看到... 哈哈!!!!

    推荐阅读