TTTAttributedLabel 如何将多个字符串高亮显示
来源:互联网 发布:php接口开发实例代码 编辑:程序博客网 时间:2024/06/04 19:53
TTTAttributedLabel进行多个字符串的高亮显示。
需要对每个字符串进行匹配,从而得到所有需要高亮的NSRange,然后利用NSMutableAttributedString对每个NSRange添加attribute
首先 是字符串匹配算法,可以研究下kmp和bm算法,这里我直接用了OC自带的 NSRegularExpression 来进行正则表达式匹配,应该算是最简单直接的方式了
传入字符串text,和需要高亮的字串patterns , 正则表达式就是字串的 "|" 集合, 根据正则表达式进行字串的大小写不敏感匹配, 然后枚举生成的NSTextCheckingResult,保存在数组中,接下来就可以对label字体进行设置了
这里用的是TTTAttribute的setText:afterInheritingLabelAttributesAndConfiguringWithBlock:方法, 在代码块里面遍历所有的NSTextCheckingResult对象,对其中的NSRange进行颜色字体的设置就完成了想要的效果
当然,也可以进行字符串的裁剪,本人自己的一个解决方案是给定一个需要的最大的字符串长度,进行裁剪
因为需求多种多样,裁剪的部分也不尽相同,这个就只能帮到这里了,如果有比较有趣或者奇葩的裁剪需求,欢迎和本人交流。
附上效果图一枚 :
具体源码请访问 http://www.cnblogs.com/sely-ios/p/4552134.html
0 0
- TTTAttributedLabel 如何将多个字符串高亮显示
- TTTAttributedLabel高亮显示手机号码、网址
- grep 字符串高亮显示
- 如何高亮显示关键字
- eclipse 高亮显示相同字符串问题
- 高亮显示匹配的字符串
- 匹配字符串并高亮显示
- Python查找字符串高亮显示
- 字符串操作-高显示提示, 字符高亮
- TextView如何高亮显示文本
- 如何将特定文件类型高亮显示
- TextView如何高亮显示文本
- 关于TTTAttributedLabel中文行高和间距的计算问题
- SecureCRT如何显示颜色和高亮显示
- myeclipse 选中类中的某个字符串 高亮显示设置
- 让grep高亮显示匹配部分字符串
- 字符串中的数字设置特殊颜色高亮显示
- 1.6 查找指定字符串,并高亮显示 p21
- Java设计模式 装饰者模式
- Kali Linux 网络扫描秘籍 第一章 起步(一)
- mark一下!千分位,小数点有就显示,没有就没有
- 自定义VIew,原型头像
- 一分钟教你知道乐观锁和悲观锁的区别
- TTTAttributedLabel 如何将多个字符串高亮显示
- 模式识别(Pattern Recognition)学习笔记(二)——贝叶斯决策
- BroadcastReceiver广播接收器简介及基本用法
- 基于MSP430F5529的μc/os嵌入式实时操作系统移植
- linux下修改网口名称
- 面向对象设计的 10 条戒律
- Java开发七牛云存储 ,上传视频与图片文件 , 页面播放器GrindPlayer.swf
- Linux下PHP安装配置MongoDB数据库连接扩展
- 模式识别(Pattern Recognition)学习笔记(三)——最小错误率贝叶斯决策