備注:使用 estimatedRowHeight + AutoLayout 實現(xiàn)更簡單
話不多說,先上圖
zhankai.gif
這種展開收起的功能對于新手來說算是常見功能中不太好做的舵抹,所以我在這里說一下我的實現(xiàn)思路,一方面總結(jié)一下自己所做的東西,另一方面希望能幫助到新手。
基本思路:
1.model決定cell的展開與收起
2.在setModel中計算 cell的高度
3.點擊按鈕切換model的狀態(tài)
具體實現(xiàn):
在數(shù)據(jù)源方法cellForRowAtIndexPath中施流,給cell.model 賦值,并且設(shè)置cell的代理為控制器鄙信;
在代理方法heightForRowAtIndexPath中瞪醋,同樣給cell.model賦值,在cell的setModel中計算cell的高度装诡,計算完成之后把高度賦值給cell.cellHeight银受,返回cell.cellHeight。
在控制器實現(xiàn)的cell代理方法中鸦采,執(zhí)行reloadRowsAtIndexPaths刷新當(dāng)前cell宾巍。
本篇內(nèi)容與前一遍“手動添加cell”方法一樣,同樣沒有什么難度渔伯。如果你有更好的方法一定要私信我顶霞,謝謝。