前言
前段時間有朋友問我如何做類似展開顯示全文的功能井辜,那時候沒空也沒研究绎谦,這幾天在群里發(fā)現也有朋友需要,于是我也就研究一下抑胎。
效果類似于這樣:
原本的想法是 給固定高度后 右下角添加 展開全部按鈕燥滑,點擊展開全部渐北,但在做的途中發(fā)現有好多坑阿逃。用富文本做吧,又不熟悉赃蛛,沒辦法找三方吧恃锉。
首先想到的就是YYkit 在看demo 中發(fā)現有這么個功能和 需求很像:
來抄吧!站在大神的肩膀上編程...
找了會兒發(fā)現核心代碼在這里呕臂,哦了破托,核心東西有了,剩下的就簡單了歧蒋。土砂。 開搞
思路:
1. 先創(chuàng)建table ?給cell 設置個高度 這個初始化高度,我是先算的text的三行的高度如果text 大于這個高度 就返回這個高度谜洽,確定cell 中的文字最多只能顯示三行萝映。
2.添加YYText庫 開抄。阐虚。序臂。
3.基本實現展開效果
4.當點擊展開全部 重新刷新cell 的高度
具體思路就是這樣,但在做的過程中發(fā)現一個問題:
如果用YYLabel 當展開的時候因為YYLabe 用的是attributedText 而我計算的高度是text 所以會出現 label 和文字的高度不一致的問題实束。
處理:
1.高度計算用attributedText 的高度計算方式
2.當展開時候用另外一個普通的label替換掉YYlabel?
我采用的是第二種奥秆。。
在下菜鳥一枚咸灿,大神的東西 好多看都看不懂构订,YYkit 還全是英文注釋 我這個渣渣更看不懂...只能先實現功能別的再說
demo 地址在這里: