代碼示例運(yùn)行環(huán)境為 IOS10透硝,Swift3.0
這是自從我開發(fā)以來一直困擾我的一個問題够傍,我一直想通過一個完美的方式來解決菇晃,但是并不存在蹦疑。之前用過一個庫 UITableView+FDTemplateLayoutCell,這個庫應(yīng)該說很好的思犁,但是卻沒有swift版本代虾,之后我發(fā)現(xiàn)了 文頂頂 的博客,幫我很好的解決了這個問題激蹲。
基本的思路是:
假設(shè)tableView的dataSource是一個數(shù)組為dataArray棉磨,那么你就定義一個Array,可以命名為cellFrameArray学辱,cellFrameArray里存儲著字典乘瓤,字典里存儲著cell中每一個控件的高度环形,那么高度又是如何得來的,是在tableView刷新之前對dataArray里的數(shù)據(jù)計算高度的結(jié)果馅扣。在tableview的返回cell的代理方法中斟赚,就可以將cellFrameArray傳給cell,cell根據(jù)這個frame數(shù)組使用代碼來進(jìn)行內(nèi)部控件的布局差油,而不是通過約束布局拗军。
這樣說可能不是很清楚,可以直接看文頂頂?shù)牟┛?iOS開發(fā)UI篇
如果有任何疑問或者是文中存在技術(shù)性錯誤蓄喇,請留言发侵,我會盡快回復(fù)或者更改。