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

2016-02-19 11:34 2 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

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

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

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

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

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

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

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

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

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

附上效果图一枚 :

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

来源:https://www.tulaoshi.com/n/20160219/1597887.html

延伸阅读
代码如下: #include "stdafx.h" #includeiostream using namespace std; int _tmain(int argc, _TCHAR* argv[]) { char s1[60]="kingbaby"; char *s2="hello"; int i=0;int j=0; while(s1[i]!='\0')i++; while((s1[i]=s2[j])!='\0'){ j++;i++; } couts1endl; return 0; } 方法二 代码如下: #include "stdafx.h" #incl...
/** * 字符串分割 * * @author * @param str java.lang.String 要分割的字符串 * @param sp java.lang.String 需要被替换的子串 * @return 替换之后的字符串 * @return 分割失败,返回null */ public static String[] Split(String str, String sp) { StringTokenizer st = new StringTokenizer...
标签: ASP
  rem 显示左边的n个字符(自动识别汉字) Function LeftTrue(str,n)       If len(str)<=n/2 Then             LeftTrue=str       Else           &nb...
标签: ASP
  '组合查询之核心:拼接字符串 '功能:定义查询条件,定义返回集,定义排序方式 '平台:Windows 2000 Server + IIS5.0 + SQL Server 2000 '语言:VBScript '作者:Cheery_Ke '***********Start************ '**************读取变量************* . . . seaLastUpdTime = Request("seaLastUpdTime1")&"-"&Re...
标签: 电脑入门
字符串格式定义 printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("格式化字符串", 参量表); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始...

经验教程

916

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部