Uitableview 在頂部增加 Cell 且不自動滾動內容的方法

qedqed6
Mar 11, 2022

--

展示

最初只有一個綠色背景的 Cell。經過幾秒後,在表格內容的最上方新增了紅色背景的 Cell。

  • 表格並不會因為在最上方新增 Cell 而自動滾動內容。
  • 當使用者滑動表格時,即可完整顯示紅色背景的 Cell的內容。

原始碼請參考下方連結:

說明

textBackgroundColors 是 tableview 的 cell 資料來源。

當我們在 tableview 的頂部新增 cell 之前,先透過 tableView.contentSize.height 紀錄當前整個表格的內容的總高度。

接著插入要新增的資料到陣列的第一個位置,並刷新表格。

接著呼叫 tableView.layoutIfNeeded() 方法,強制讓表格內容的高度被正確計算出來。

透過將新舊表格高度相減,得出新增的內容讓表格增加了多少高度。

再將表格當前的位置加上增加的高度,再讓表格移動到新的位置,即可以讓畫面維持在新增內容之前的樣子。

--

--

qedqed6

吾乃阿克西斯教教義信奉者!汝,勿要忍耐。想喝的時候就喝,想吃的時候就吃便好。因為明天並不見得還能吃得到。