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