将多个字符串高亮显示之TTTAttributedLabel

剑茫茫剑

剑茫茫剑

2016-02-19 11:34

下面这个将多个字符串高亮显示之TTTAttributedLabel教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

下面通过代码图和效果图展示给大家

TTTAttributedLabel进行多个字符串的高亮显示。

需要对每个字符串进行匹配,从而得到所有需要高亮的NSRange,然后利用NSMutableAttributedString对每个NSRange添加attribute

首先 是字符串匹配算法,可以研究下kmp和bm算法,这里我直接用了OC自带的 NSRegularExpression 来进行正则表达式匹配,应该算是最简单直接的方式了

传入字符串text,和需要高亮的字串patterns , 正则表达式就是字串的 "|" 集合, 根据正则表达式进行字串的大小写不敏感匹配, 然后枚举生成的NSTextCheckingResult,保存在数组中,接下来就可以对label字体进行设置了

这里用的是TTTAttribute的setText:afterInheritingLabelAttributesAndConfiguringWithBlock:方法, 在代码块里面遍历所有的NSTextCheckingResult对象,对其中的NSRange进行颜色字体的设置就完成了想要的效果

当然,也可以进行字符串的裁剪,本人自己的一个解决方案是给定一个需要的最大的字符串长度,进行裁剪

因为需求多种多样,裁剪的部分也不尽相同,这个就只能帮到这里了,如果有比较有趣或者奇葩的裁剪需求,欢迎和本人交流。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

附上效果图一枚 :

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

以上就是本文的全部内容,希望大家喜欢。

展开更多 50%)
分享

猜你喜欢

将多个字符串高亮显示之TTTAttributedLabel

编程语言 网络编程
将多个字符串高亮显示之TTTAttributedLabel

在一个字符串中查找另一个字符串

Web开发
在一个字符串中查找另一个字符串

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

字符串根据多个字符进行分割的一种方法

电脑网络
字符串根据多个字符进行分割的一种方法

java中对字符串每个字符统计的方法

编程语言 网络编程
java中对字符串每个字符统计的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

javascript利用正则快速找出两个字符串的不同字符

Web开发
javascript利用正则快速找出两个字符串的不同字符

利用正则快速找出两个字符串的不同字符

Web开发
利用正则快速找出两个字符串的不同字符

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java 反射之私有字段和方法详细介绍

Java 反射之私有字段和方法详细介绍

android 分辨率适配的方法

android 分辨率适配的方法
下拉加载更多内容 ↓