前言
前段时间有朋友问我如何做类似展开显示全文的功能,那时候没空也没研究,这几天在群里发现也有朋友需要,于是我也就研究一下。
效果类似于这样:
原本的想法是 给固定高度后 右下角添加 展开全部按钮,点击展开全部,但在做的途中发现有好多坑。用富文本做吧,又不熟悉,没办法找三方吧。
首先想到的就是YYkit 在看demo 中发现有这么个功能和 需求很像:
来抄吧!站在大神的肩膀上编程...
找了会儿发现核心代码在这里,哦了,核心东西有了,剩下的就简单了。。 开搞
思路:
1. 先创建table 给cell 设置个高度 这个初始化高度,我是先算的text的三行的高度如果text 大于这个高度 就返回这个高度,确定cell 中的文字最多只能显示三行。
2.添加YYText库 开抄。。。
3.基本实现展开效果
4.当点击展开全部 重新刷新cell 的高度
具体思路就是这样,但在做的过程中发现一个问题:
如果用YYLabel 当展开的时候因为YYLabe 用的是attributedText 而我计算的高度是text 所以会出现 label 和文字的高度不一致的问题。
处理:
1.高度计算用attributedText 的高度计算方式
2.当展开时候用另外一个普通的label替换掉YYlabel
我采用的是第二种。。
在下菜鸟一枚,大神的东西 好多看都看不懂,YYkit 还全是英文注释 我这个渣渣更看不懂...只能先实现功能别的再说
demo 地址在这里: