巧妙使用富文本来实现开发中的功能

在实际的项目开发过程中,我们经常会遇到这样的一些设计,如下图

UI效果图

十个App得有九个是这样的,要求点击"XXX协议",就跳转到一个协议的页面,通常我们会有两种办法去处理这样的情况:

1、懒人派:不喜欢折腾,就去用两个控件(UILabel + xxx),分别去显示前面不可点击部分和后面可点击部分。

这样很快的就搞定了,但是是真的搞定了吗?往下看,这样做会有坑的。

2、勤劳派:自己总结出一个实现方式,采用富文本+自定义显示控件的方法来一劳永逸。

好了,先说懒人派那样做的坑吧,且不说布局麻烦了(UILabel和UIButton对不齐),就说适配问题吧,假如,后面那几个字在某一宽度的手机上,正好出现换行情况怎么办?显示还得照常显示吧,点击还的照常点击吧。基本上够喝一壶了。

适配遇到两种情况

1、在点击范围未出现换行情况下,点击标红色字体,跳转到用户协议页面。

2、在点击范围出现换行的情况下,点击标红色字体,仍然跳转到用户协议页面。

所以,懒人一下子就燥起来了,措手不及,防不胜防!

所以,懒人们还是勤快点吧,开发过程我们还是多思考一下,一劳永逸才是懒人之道。


封装


实现思路:使用UITextView的selectionRectsForRange方法来获取需要点击跳转部分的Rect(数组),然后重写View的touchesBegan,判断触摸点是否在Rect内,若都不在则未命中,否则,则命中。

使用富文本+自定义显示控件搞定了,使用起来特别的方便简单。代码中已经注释很清楚了,保证看一眼你就会了。此demo实现了富文本点击跳转,这一点在开发过程中,会衍生出很多应用场景,不妨自己总结一下,触类旁通。

demo的地址:https://github.com/SpringAndSummer/CoreTextJump/tree/master

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,367评论 25 709
  • 去年夏天 我家门口的大树上 飞来一只知了 早上 它叫 知了知了 晚上 它也叫 知了知了 好像什么都知道 好吵好吵 ...
    拈花惹草阅读 3,379评论 3 3
  • 看到唐菲菲进来,唐晓伟苍白的脸上挤出一丝笑容,虚弱道:“姐,你来了。”他勉强打起精神,支撑着想坐起来,只是,努力了...
    飄雲阅读 1,877评论 0 1
  • 感恩明了因分享给予更喜悦的理念,分享给予不仅是一种精神上的富足更是一种格局的提升 感恩一直以来我所拥有的金钱宝宝,...
    邬静阅读 1,216评论 0 2

友情链接更多精彩内容