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;
嗯... 效果是这个样子的
文章图片
3E2FD00A-0E9C-46C2-AAB9-4066A519243B.png 相信大家看了之后应该能明白我要表达什么意思了吧? 也应该知道这个玩意到底怎么用的了是吧
.
.
.
.
还是那句话,能帮到你,才是我最大的成就. 谢谢.....
欢迎大家指点,交流,我看到会第一时间回复,除非没看到... 哈哈!!!!
推荐阅读
- 如何画一个简单点的二次元少女()
- 曲妖精
- “公平原则”在员工激励中的运用——用一个奖项调动起全员的工作热情
- 他为什么不爱你()
- iOS|iOS 是如何管理内存的()
- 使用React手写一个手风琴组件
- 写一个Delete程序去忘记
- 杀手的挽歌
- Golang 给结构体绑定方法
- 我对程序员这项工作的认识