iOS 文本处理 ----- 两行文本后面添加 ... 查看更多
顶顶顶顶顶顶顶顶顶顶的大多数是是是是
谁谁谁水水水水是是是是是...查看更多
顶顶顶顶顶顶顶顶顶顶的大多数是是是是
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
谁谁谁水水水水是是是是是是是是是是撒
大多数是山东省撒打算打算打算打算的收
水电费第三方第三方说的发送到发送到范
水电费第三方士大夫士大夫。
实现思路:
1.计算两行文本可以显示文本的个数
2.截取字符串
3.拼接字符( ... 和 查看更多)两个都拼接上去
4.给查看更多文本(富文本)添加事件
问题:主要问题在于 思路1
如何知道两行文本可以显示多少个字数,而且文本可能有标点,数字、英文、中文 它们的宽度是不一致的。
意思就是:两行文本可以显示的个数 是根据具体需要显示文本内容来决定的。
上代码 使用到 coreText 框架
CTFramesetterCreateFrame(framesetter,CFRangeMake(0,0), bezierPath.CGPath,NULL);
/** 返回两行文本的range */- (NSRange)getTwoTextRangeWith:(NSString *)string { NSMutableDictionary * attributes = [NSMutableDictionary dictionaryWithCapacity:5]; UIFont * font = [UIFont systemFontOfSize:14.0]; [attributes setValue:font forKey:NSFontAttributeName]; NSAttributedString * attributedString = [[NSAttributedString alloc] initWithString:string/*需要分页的字符串*/ attributes:attributes]; CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef) attributedString); UIBezierPath * bezierPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, App_Frame_Width - 16, 42)]; CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), bezierPath.CGPath, NULL); CFRange range = CTFrameGetVisibleStringRange(frame); CFRelease(frame); CFRelease(framesetter); NSRange rg = NSMakeRange(range.location, range.length); return rg;}
后面的工作就自己截取字符串了。
iOS 文本处理 ----- 两行文本后面添加 ... 查看更多相关推荐
- 文本溢出显示省略号时展示‘查看更多’按钮
问题: 元素宽度100%,宽度会随着浏览器缩放而变化.元素内文本超过4行时显示省略号,同时展示'更多'按钮,点击更多按钮展示全部文本.如下图所示 分析: 文本超出4行显示省略号可以通过display ...
- 原生JS实现点击查看更多
评论区点击查看更多功能的实现 思路: 对内容的高度进行判断,如果内容的高度大于设定的值,将内容的高度设定为固定值,同时将'查看更多'的节点上树.实现还是挺简单的,直接看代码. <!DOCTYPE ...
- Vue2.0 组件文本超出3行显示... 点击查看更多可以查看全部内容(展开收起)
效果 <template><div ref="txttype" class="bottom"><div :class=" ...
- python可视化添加文本_python Matplotlib基础--如何添加文本和标注
创建一个优秀的可视化图表的关键在于引导读者,让他们能理解图表所讲述的故事.在一些情况下,这个故事可以通过纯图像的方式表达,不需要额外添加文字,但是在另外一些情况中,图表需要文字的提示和标签才能将故事讲 ...
- CSS文本超过两行用省略号代替(兼容所有浏览器)
CSS文本超过两行用省略号代替 方法一:常规写法(只兼容Chrome内核浏览器) 方法二:可以兼容所有浏览器的方式( js + CSS实现 ) 方法三:可以兼容所有浏览器的方式( 纯CSS实现 ) 方 ...
- NLP-文本处理:基本技术【命名实体识别、分词、拼写纠错、停用词、词性标注】、文本序列化、文本向量化、文本语料的数据分析、文本特征处理(Ngram特征添加、文本长度规范)、数据增强
分词(tokenization):英文通过空格或者标点符号,就可以将词分开:而中文的分词会涉及很多问题(未登录词问题.分词歧义问题.分词不一致问题),所以会有各种不同分词的算法. 清洗:我们需要对文本 ...
- 手机直播app制作时怎样在iOS中实现富文本
我们在观看直播时,经常会看到有的主播房间名字下面带有话题小标签,比如#搞笑的一天##悲伤的瞬间##双十一买了点啥#等,虽然看起来是很小的一个功能,但是在进行手机直播app制作时,在iOS中通过富文本的 ...
- 微信小程序文本查看更多和收起
微信小程序文本查看更多和收起 微信小程序中,有时候文本需要实现这样的功能: 1.文本超过n行显示省略号 2.省略时,显示 展开/收起 按钮 3.文本不超过n行时,不显示省略号和展开/收起按钮 实现功能 ...
- 14、iOS里面的富文本
iOS里面的富文本 1.NSAttributedString属性概览表 2.属性详解及应用 2.1 NSAttributedString.Key.font --字体大小 2.2 NSAttribute ...
最新文章
- 分布式缓存灵魂十连,你能坚持几个?
- 数据库期末复习样卷,临时抱佛脚高分通过考试
- contains java_Java CopyOnWriteArraySet contains()用法及代码示例
- Python爬虫的框架有哪些?推荐这五个!
- html树状图右侧_树状图及制作方法(Excel 2016/Excel 2013)
- 带有Swagger的Spring Rest API –集成和配置
- 【CodeForces - 227A】Where do I Turn? (计算几何,叉积判断直线拐向)
- 求1~n这n个整数十进制表示中1出现的次数
- Win32窗体应用程序如何添加资源文件?
- 以太网共同发明者去世,享年71岁
- ios - 带动画圆形旋转的进度条
- 【天梯选拔月赛】参与者人数(并查集模版题!remember find_father写法!)
- 数据库软件access mysql对比_access数据库软件优缺点对比
- 中国物联网、物联网卡进入蓬勃发展阶段
- 2019.7月面试题总结(三)
- beyong compare激活
- java校内报纸实验报告_第六周Java实验报告四
- 坚定信念,雨后终会见彩虹
- 【读书笔记】第1章“自律100天”的华丽开启
- 【异常记录】C# 连接数据库错误异常解决 err:40
热门文章
- 下载Python类库Server Error 404 - File
- 回收宝获阿里巴巴C1轮战略投资,二手回收“强者恒强”格局已定
- vue+django前后端分离之hippo前端初始化(npm vue-cli)
- 【LEDE】树莓派上玩LEDE终极指南-81-从U盘启动(并不推荐)
- 认知跃迁,由生疏到成熟的四个关键!
- 信号隔离器在水处理控制系统的应用
- Linux - 第8节 - 进程信号
- 使用mybatis-plus产生java.sql.SQLSyntaxErrorException: Table ‘数据库.xxx表‘ doesn‘t exist(坑以踩)
- PBD加密专家(pb混淆加密大师)(pb obfuscator) 最新说明书
- 用c++做一个简单的打飞机小游戏(详细说明与注释)