Xib
Autolayout
StoryBoard
Masonry
SnapKit
SDAutoLayout
UITableViewCell
UITableViewHeaderFooterView
pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate UITableViewDynamicLayoutCacheHeight, add the following to your Cartfile.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
】UITableViewDynamicLayoutCacheHeight
資料夾下的全部內容拖曳到你的專案。 Cell
使用Xib
建構「 也支援純程式碼佈局,只要是使用Autolayout均可」- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
中的程式碼一致即可。 UITableView
已經自动算高
且自动缓存高度
了,效果如下: Swift Xib Demo
Swift 純程式碼佈局Demo
更多使用請參考UITableView+BMDynamicLayout.h 檔案的API。
提前建立Cell,然後填入內容,然後強制佈局,然後取得Cell 中MaxY 最大的View,然後取此View 的MaxY 為Cell 所需高度【所以保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
至關重要】,內部會自動管理快取的保存和清空操作。
系統自動算高的缺陷大家應該都比較清楚,如:沒緩存,重複計算,界面跳動,由於是邊滾邊算在佈局複雜的Cell 有一些問題,只支援iOS8+,佈局必須要填充整個Cell,在佈局的時候有些場景需要設定優先,不然會回報約束衝突。
UITableView-FDTemplateLayoutCell 最開始我使用是此框架,同時API 設計也參考自FDTemplateLayoutCell,還用了幾張素材,?,在此感謝了,但後面有一些Bug 一直沒處理?,佈局必須要填充整個Cell,在佈局的時候一些場景需要設定優先權,不然會回報約束衝突,就遷移到了UITableViewDynamicLayoutCacheHeight。
UITableViewDynamicLayoutCacheHeight 的缺陷有,
基於此框架實現了一個簡陋的微信朋友圈功能微信朋友圈代碼是幾年前隨便寫的?,沒準備調整了,感興趣的可以瞧瞧。
UITableViewDynamicLayoutCacheHeight is released under the MIT license. See LICENSE for details.