展示
最初只有一個綠色背景的 Cell。經過幾秒後,在表格內容的最上方新增了紅色背景的 Cell。
- 表格並不會因為在最上方新增 Cell 而自動滾動內容。
- 當使用者滑動表格時,即可完整顯示紅色背景的 Cell的內容。
原始碼請參考下方連結:
說明
textBackgroundColors 是 tableview 的 cell 資料來源。
當我們在 tableview 的頂部新增 cell 之前,先透過 tableView.contentSize.height
紀錄當前整個表格的內容的總高度。
接著插入要新增的資料到陣列的第一個位置,並刷新表格。
接著呼叫 tableView.layoutIfNeeded()
方法,強制讓表格內容的高度被正確計算出來。
透過將新舊表格高度相減,得出新增的內容讓表格增加了多少高度。
再將表格當前的位置加上增加的高度,再讓表格移動到新的位置,即可以讓畫面維持在新增內容之前的樣子。