http://www.code4app.com/thread-31445-1-1.html

Tag:

项目介绍:

YBAttributeTextTapAction

  • 一行代码添加文本点击事件

效果图

Swfit版本(最新版还未更新)

https://github.com/lyb5834/YBAttributeTextTapForSwfit.git

使用方法

  • #import "UILabel+YBAttributeTextTapAction.h"

  • 先设置 label.attributedText = ?????

  • 有2种回调方法,第一种是用代理回调,第二种是用block回调

  • 代理回调

  • 1.传入要点击的字符串数组[label yb_addAttributeTapActionWithStrings:@[@"xxx",@"xxx"] delegate:self];

  • 2.传入要点击的range数组[label yb_addAttributeTapActionWithRanges:@[NSStringFromRange(range1),NSStringFromRange(range2)] delegate:self]

  • block回调

  • 1.传入要点击的字符串数组 [label yb_addAttributeTapActionWithStrings:@[@"xxx",@"xxx"] tapClicked:^(UILabel *label,NSString *string, NSRange range,NSInteger index) { coding more... }];

  • 2.传入要点击的range数组 [label yb_addAttributeTapActionWithRanges:@[NSStringFromRange(range1),NSStringFromRange(range2)] tapClicked:^(UILabel *label,NSString *string, NSRange range,NSInteger index) { coding more... }];

CocoaPods支持

  • 只需在podfile中输入 pod 'YBAttributeTextTapAction' 即可

V3.0.0版本

  • 重构计算文字坐标的算法,点击准确率大大提升(再大的文本都不怕啦)

  • 重构API,回调参数更多

  • 增加传入range数组的API,可以指定range进行触发

  • 增加设置点击高亮色和是否扩大点击区域的API,麻麻再也不用担心我手指粗点不到啦

  • 重构demo,介绍更详细,用法更丰富

  • 修复一个页面多次调用会相互影响的bug

  • 修复在label上添加手势无效的bug

V2.0.5修复

  • 修复内存泄漏

V2.0.0重大更新

  • 修复字体变小时,坐标计算不正确导致无法点击的bug

V2.1.0更新

  • 增加点击效果,默认是开启,关闭只需设置label.enabledTapEffect = NO即可

问题总结

  • 因为UILabel的封装,有些属性不能实现,在此说一下一些提的比较多的问题

  • 关于文字排版的正确设置方式,设置label.textAlignment = NSTextAlignmentCenter会导致点击失效,正确的设置方法是

        NSMutableParagraphStyle *sty = [[NSMutableParagraphStyle alloc] init];
    sty.alignment = NSTextAlignmentCenter;
    [attributedString addAttribute:NSParagraphStyleAttributeName value:sty range:NSMakeRange(0, text.length)];

版本支持

  • xcode6.0+

  • 如果您在使用本库的过程中发现任何bug或者有更好建议,欢迎@issues 或联系本人email lyb5834@126.com

项目地址: https://github.com/lyb5834/YBAttributeTextTapAction

轻量级UILabel分段点击扩展更新啦的更多相关文章

  1. 基于轻量级ORM框架Dapper的扩展说明

    这里简单的介绍一下本人基于Dapper作的一些简单的扩展,供大家参考. 为何要使用这款框架,相信大家看到下面排名就清楚了 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco ...

  2. EF扩展 更新指定字段

    using System.Data.Entity.Infrastructure; using System.Threading.Tasks; /// <summary> /// EF扩展 ...

  3. Unity---编辑器扩展---更新中

    目录 1.Unity编辑器扩展介绍 2.具体功能 2.1.在菜单栏中添加扩展 2.2.为扩展事件添加快捷键 2.3.Hierarchy,Project视图中右键添加扩展 2.4.使用Selection ...

  4. 设置html各元素不可点击(持续更新)

    1.span <span id="nextStep" onclick="right">下一页</span> $("#nextS ...

  5. iOS头条新闻App、自动布局、省市区联动、登录按钮动画、Alert弹框效果等源码

    iOS精选源码 LEEAlert -- 优雅的Alert ActionSheet 登录按钮 省市区三级联动 JHViewCorner - 一行代码搞定圆角 JHFrameLayout - 一行代码实现 ...

  6. x64汇编第一讲,Vs系列配置x64环境与x86环境

    目录 x64汇编环境配置 一丶x64环境配置 1.1 VS系列编译器配置X64Asm开发环境. 二丶Vs配置X86汇编环境. x64汇编环境配置 一丶x64环境配置 现在windows系统都是64位了 ...

  7. PHP 扩展篇 _ 持续更新

    记住这个网站:http://pecl.php.net/ PHP-Redis扩展更新时间:2019/05/06 PHP安装Redis 1:下载目前最新版的redis插件 wget http://pecl ...

  8. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  9. Excel中添加并使用宏实现批量更新数据

    一.状况描述    当我们需要后台更新大量数据的时候,可以使用该功能.二.解決方案    (1)新建一个Excel文件,并另存为启用宏的Excel工作簿,扩展名为.xlsm.    (2)在Excel ...

随机推荐

  1. python内置函数三

    ord()  函数 和 chr()  相反   chr() 是将数字转换成assci码     ord() 是将字符串转换成assci码 显示 pow() 函数  pow(x,y,z)  表示x**y ...

  2. what to do in next ten years

    除了深造编程功力,还要有: 烹饪(川菜湘菜,药膳) 吉他 摄影 四书五经,诗词经典 毛笔字书法 可报班,可搜教程自学

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 图片:为图片添加圆角 (IE8 不支持)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. JuJu团队1月2号工作汇报

    JuJu团队1月2号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 飞飞 -- 测试dataloader 无 婷婷 调试代码 提升acc 无 恩升 -- 测试dataloade ...

  5. JAVA开源爬虫列表及简介

    本文列举了一些较为常用的JAVA开源爬虫框架: 1.Apache Nutch 官方网站:http://nutch.apache.org/ 是否支持分布式:是 可扩展性:中.Apache Nutch并不 ...

  6. ubuntu 下tftp的安装、配置、使用

    背景 一般来说,tftp 服务 可以用来 uboot 下载. 正文 1. 安装 sudo apt-get install tftp-hpa tftpd-hpa -y 2. 配置 sudo vi /et ...

  7. PAT (Advanced Level) 1128~1131:1128N皇后 1129 模拟推荐系统(set<Node>优化) 1130 中缀表达式

    1128 N Queens Puzzle(20 分) 题意:N皇后问题.按列依次给定N个皇后的行号,问N个皇后是否能同时不存在行冲突.列冲突和主副对角线冲突. 分析: 1.根据题意一定不存在列冲突,所 ...

  8. day05-Python运维开发基础(双层循环、pass/break/continue、for循环)

    # ### 双层循环练习 # 十行十列小星星 j = 0 while j<10: # 逻辑代码写在下面 # 打印一行十个小星星 i = 0 while i<10: print(" ...

  9. 关于Orcale 11g 安装过程

    1.前往Oracle官网下载相应安装包 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.h ...

  10. JavaScript的调用

    1 方法调用模式 var myObject = { value : 0, increment : function(inc) { alert('hi'); } }; myObject.incremen ...