Masonry自動計算cell行高:HYBMasonryAutoCellHeight

前言


還在手動計算UITableViewCell的行高嗎?還在每次都因爲需求變化一點就要大量調整cell的高度而煩惱嗎?現在教大家如何通過Masonry的自動佈局來實現自動計算cell的行高!!!

github沒有找到基於Masonry自動計算行高的庫,倒是找到了使用xib/storyboard在添加約束來自動計算行高的庫,如: UITableView-FDTemplateLayoutCell

本人非常推崇Masonry來實現代碼的自動佈局,因此項目中都是使用Masonry佈局的,爲了自動計算行高,決定寫一個擴展,以達到自動計算的效果,如此一來,開發者不用再關心那些非固定行高的cell的動態計算問題了。

設置關鍵依賴


要想自動計算出cell的行高,我們還需要指定以哪個視圖作爲cell的最後一個視圖,比如我們最後要添加一條線,我們可以以這條線作爲hyb_lastViewInCell,如果這條線還需要距離底部一定距離,那麼可以設置hyb_bottomOffsetToCell

計算行高API


要計算行高,只需要在UITableView的計算行高的代理方法中調用此API即可:

在調用時,config傳回來了cell對象,需要在調用處調用方法來配置好數據,才能正確地計算出cell的行高。通常是這樣調用的:

實現例子


效果圖如下:

image

我們看下實現-initWithStyle: reuseIdentifier:方法,因爲我們要自動計算cell行高會自動調用此方法,因此一定要實現此方法來佈局:

注意到這兩行代碼了嗎:

先是設置哪個視圖作爲cell的最後一個視圖,然後設置了最後一個參考視圖與cell的底部的距離。其中,self.hyb_lastViewInCell屬性是必須要設置的,否則會拋出異常。

使用


這個組件是開源的,而且是支持cocoapods的,因此大家若是使用了cocoapods來管理項目第三方庫,可以這樣使用:

如果項目未使用cocoapods,直接下載源代碼,然後將HYBMasonryAutoCellHeight文件夾拖入工程即可使用!

源代碼


大家可以到github下載源代碼來看看,內部實現很簡單,當然要實現自動計算行高也是有系統方法的,不一定需要像筆者這樣來實現。

下載源代碼:https://github.com/CoderJackyHuang/HYBMasonryAutoCellHeight

喜歡就給個star

關注我


如果在使用過程中遇到問題,或者想要與我交流,可加入有問必答QQ羣:324400294

關注微信公衆號:iOSDevShares

關注新浪微博賬號:標哥Jacky


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章