iOS开发之富文本(oc与swift两种都有)

更新时间:2023-05-09 05:20:00 阅读: 评论:0

iOS开发之富⽂本(oc与swift两种都有)
iOS开发中常会遇到让Label的⽂字多样化显⽰,⽐如不同的颜⾊,不同的字体,这就要⽤到所谓的富⽂本,下⾯我已经把⽅法简单封了⼀下,建议⼤家放到单例中调⽤,swift版直接拖到最后⾯看
根据需求使⽤第⼀个或第⼆个⽅法
/**
*  多样性字符串处理
*
*  @param original  原始字符串
*  @param conversion 需转换的字符串
*  @param font      字体
*  @param color      颜⾊
*
*  @return转换好的字符串
*/
- (NSMutableAttributedString *)diverStringOriginalStr:(NSString *)original conversionStr:(NSString *)conversion withFont:(UIFont *)font withColor:(UIColor *)color
{
original = [NSString nullToString:original]; //⾮空判断,可以删了,记得不要传空就⾏
conversion = [NSString nullToString:conversion]; //⾮空判断,可以删了,记得不要传空就⾏
NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:original];
NSRange range = [original rangeOfString:conversion];
[str addAttribute:NSForegroundColorAttributeName value:color range:range];
[str addAttribute:NSFontAttributeName value:font range:range];
return str;
}
使⽤⽰例
[UIColor redColor]]
效果
注意:调⽤此⽅法前,必须先创建好Label,并且设置好了默认的字体与颜⾊(就是上图中⿊⾊的字部分)
/**
*  多样性字符串处理(批量处理)
*
*  @param original  原始字符串
*  @param conversion 需转换的字符串数组
*  @param font      字体
*  @param color      颜⾊
*
*  @return转换好的字符串
*/
- (NSMutableAttributedString *)diverStringOriginalStr:(NSString *)original conversionStr:(NSString *)conversion withFont:(UIFont *)font withColor:(UIColor *)color
{
original = [NSString nullToString:original];
conversion = [NSString nullToString:conversion];
NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:original];
NSRange range = [original rangeOfString:conversion];
[str addAttribute:NSForegroundColorAttributeName value:color range:range];
[str addAttribute:NSFontAttributeName value:font range:range];
return str;
}
swift版
/**
*  多样性字符串处理
*
*  @param original  原始字符串
*  @param conversion 需转换的字符串
*  @param font      字体
*  @param color      颜⾊
*
*  @return 转换好的字符串
*/
func diverStringOriginalStr(original : String,conversionStr conversion : String,withFont font : UIFont,withColor color : UIColor) -
>NSMutableAttributedString{
let range : NSRange = (original as NSString).rangeOfString(conversion as String)
let str = NSMutableAttributedString(string: original as String)
str.addAttribute(NSForegroundColorAttributeName, value: color, range: range)
str.addAttribute(NSFontAttributeName, value: font, range: range)
return str
}
/**
*  多样性字符串处理(批量处理)
*
*  @param original  原始字符串
*  @param conversion 需转换的字符串数组
*  @param font      字体
*  @param color      颜⾊
*
*  @return 转换好的字符串
*/
func diverStringOriginalStr(original : String,conversionStrArr conversionArr : NSArray,withFont font : UIFont,withColor color : UIColor) ->NSMutableAttributedString{
let str = NSMutableAttributedString(string: original as String)
for subStr in conversionArr{
let range : NSRange = (original as NSString).rangeOfString(subStr as! String)
str.addAttribute(NSForegroundColorAttributeName, value: color, range: range)
str.addAttribute(NSFontAttributeName, value: font, range: range)
}
return str
}
使⽤⽰例
效果
注意:调⽤此⽅法前,必须先创建好Label,并且设置好了默认的字体与颜⾊(就是上图中⿊⾊的字部分)
批量处理的⽰例
let arr = NSArray(objects: "5,000,","元")
效果

本文发布于:2023-05-09 05:20:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/561947.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   默认   尾号   开发   处理   放到   记得   建议
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图