[Swift] TableView with AutomaticDimension Height(自動計算高度)
Topic
Assign Data To Cell
- 可利用tbItem 作為dataSource, 在tbItem內讀取非同步資料, temp save 住資料,才不會每次cell reuse時,都需要重新load資料
Cell Inset
- 用自動計算高度時,不能用原本的cell contentView 去做inset , 否則自動計算高度會錯誤,所以要在contentView add insetView 當作 SubView ,可對insetView 設置inset ,然後把其他SubView,add to insetView即可。
Async UIImage(Download from server) Dynamic height in cell (製作一個根據圖片高度而自適應高度的cell,圖片要可以等比例縮放到螢幕寬,高由比例決定)
- 讀取相片後須cache住 uiimage & image size (不要每次assign 給cell時才讀取)
- 將UIImage 放入StackView裡面
- 無法在非同步圖片讀取後,取得圖片比例高,然後update constraint的方式,cell會無法重新計算高度
- 改以assgin cell 時,將已存取的 image size 計算出ratio Height , update StackView(or imgView)的 Constraints(不能用reload data的方式,因為assign 完又reload 會變無限循環)
- 係利用stackView(or imgView)原本的h 就是一個 Constraint, 將其變更後,再active
WillDisplay
- willDisplay 不能變動到原本會影響到高度的contraint, 因為不會重新計算新高