YYText识别链接和点击事件
YYText识别链接和点击事件
在使用YYLabel时有个比较麻烦的事情,就是YYLabel无法自动识别链接。因此我写了一个正则表达式来解决这个问题。
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:@"这里传入富文本"];;
// 匹配条件NSString *regulaStr = @"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";NSError *error = NULL;// 根据匹配条件,创建了一个正则表达式NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regulaStr options:NSRegularExpressionCaseInsensitive error:&error];if (!regex) {NSLog(@"正则创建失败error!= %@", [error localizedDescription]);} else {NSArray *allMatches = [regex matchesInString:attrStr.string options:NSMatchingReportCompletion range:NSMakeRange(0, attrStr.string.length)];for (NSTextCheckingResult *match in allMatches) {NSString *substrinsgForMatch2 = [attrStr.string substringWithRange:match.range];NSMutableAttributedString *one = [[NSMutableAttributedString alloc] initWithString:substrinsgForMatch2];// 利用YYText设置一些文本属性one.yy_font = [UIFont systemFontOfSize:self.viewSetting.companyLabelFontSize];one.yy_underlineStyle = NSUnderlineStyleSingle;one.yy_color = ThemeColor;YYTextBorder *border = [YYTextBorder new];border.cornerRadius = 3;border.insets = UIEdgeInsetsMake(-2, -1, -2, -1);//设定颜色则点击的时候,点击链接的时候链接颜色不会变// border.fillColor = [UIColor greenColor];YYTextHighlight *highlight = [YYTextHighlight new];[highlight setBorder:border];[highlight setColor:[UIColor redColor]];[one yy_setTextHighlight:highlight range:one.yy_rangeOfAll];// 根据range替换字符串[attrStr replaceCharactersInRange:match.range withAttributedString:one];}}yyLabel.attributedText = attrStr;// 获得YYLabel的布局信息YYTextContainer *container = [YYTextContainer containerWithSize:CGSizeMake(kScreen_Width-10*2, MAXFLOAT)];YYTextLayout *textLayout = [YYTextLayout layoutWithContainer:container text:attrStr];yyLabel.textLayout = textLayout;WEAK_SELFyyLabel.highlightTapAction = ^(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect) {NSLog(@"点击链接%@",[text.string substringWithRange:range]);};CGFloat yyLabelHeight = textLayout.textBoundingSize.height;
YYText识别链接和点击事件相关推荐
- YYText识别链接点击效果和输出点击的内容
- (void)testUrl{ // 测试文本 NSString *text = @"发呆发https://blog.csdn.net/a18339063397呆发的负担发的分身乏术对方的 ...
- js为链接绑定点击事件并且附带return false;来阻止跳转
<!DOCTYPE HTML> <html><head><meta charset="gb2312" /><title> ...
- iostext添加点击事件_iOS给UILabel添加点击事件
前言:笔者最近需要实现给UILabel中的链接添加点击事件的功能.使用so.com查了下,发现TTTAttributedLabel的封装程度比较好.整理了TTTAttributedLabel的基本使用 ...
- [css] 怎样用纯CSS实现禁止鼠标点击事件?
[css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接.点击事件统统失效. 个人简介 ...
- android加载富文本可点击链接,Android富文本解析器,支持网络图片,图片和链接点击事件...
HtmlText image HtmlText 是 android.text.Html 的一个扩展,可以加载 HTML 并将其转换成 Spannable 显示在 TextView 上,支持网络图片,图 ...
- 2、多效果、太极图、党徽和五角星、时钟、animation、文本溢出显示省略号、Flex布局、Flex容器、链接状态、选择器、清除浮动、table表格合并、点击事件、半包围效
2.多效果.太极图.党徽和五角星.时钟.animation.文本溢出显示省略号.Flex布局.Flex容器.链接状态.选择器.清除浮动.table表格合并.点击事件.半包围效.getBoundingC ...
- 官网下的 demoMUI,a链接失效和点击事件失效
可以监听tap事件,然后执行document.location.href=this.href;跳转 // 监听tap事件,解决 a标签 不能跳转页面问题mui('body').on('tap','a' ...
- 微博的文本编辑和显示(emoji表情,@某人、链接高亮点击)
日常开发的过程中我们经常会需要实现类似微博的文本输入框,可以自定义的emoji.@某人高亮显示.快捷删除.文本显示表情.@人和链接点解等效果.本人躺尸过各种坑后来一波,废话不说,先看效果: Demo ...
- WPF 给任意控件通过按下移动抬起封装点击事件
其实点击这个事件是可以通过按下移动和抬起三个事件封装出来的,本文提供给大家一个辅助的方法,方便给任意的控件附加点击事件 在开始前需要了解一些本文点击的定义,本文点击的定义就是在按下到抬起过程中,不会出 ...
- android 项目学习随笔十三(ListView实现ITEM点击事件,将已读状态持久化到本地)...
1.因为给LISTVIEW增加了两个头布局,所以在点击事件ITEM索引会增加2,比如原来第一条数据的索引应该为0,增加两个头布局后,它的索引变为 2,为了使LISTVIEW的ITEM在点 ...
最新文章
- memcache的分布式缓存问题
- 高级驾驶辅助系统ADAS
- deepin 安装 kvm-manager
- Ubuntu基本命令
- java3d 上色_Unity 着色过程
- mysql 热块_MySQL分布式集群之MyCAT(三)rule的分析【转】
- sqlserver select 数值精度_SQL Server读懂语句运行 (二) SET STATISTICS IO ON
- 如何用Pygame写游戏(十三)
- html如何运用循环添加表格,萌新提问!!!如何用for循环循环表单?
- GB28181协议中的事件系统设计
- Use Namesapce 使用方法简介
- 解决点击锚点置顶内容被导航遮住
- idea解决代码冲突与乱码
- 解析UML的要点与应用
- EasyRecovery15可靠的数据恢复软件
- HDU 5857 Median(找中位数)
- snmp++ linux 编译出错_成为linux高手的第二步
- 首都师范 博弈论 2 2 4划线法
- 基于139邮箱的新邮件到达免费短信提醒的研究与应用
- OpenCV:直方图均衡
热门文章
- CryptoJS 加密
- python发送验证码通知短信(互亿无线)
- xampp mysql使用教程_在Windows下XAMPP的安装及使用教程
- 解决“安装程序无法创建新的系统分区,也无法定位现有系统分区”问题方法
- redis在php下面的命令大全
- ARINC429总线收发器 -- HI-3582调试记录
- matlab 矩阵模二运算符,MATLAB中怎样进行模二加的运算?
- 关于GitHub如何转为中文问题——Google举例
- 排课系统asp源代码_高校教务排课系统源代码及全套资料.doc
- DXF解析CAD图形解析PLT格式文件解析C#工程源码