展開收合的 TableView Static Cell
3 min readJun 27, 2018
這是看了魏巍老師的教學影片:展開收合的TableView後,想說用Static型態的TableView做出來,因為Static的TableView在使用上是很方便的,像是可以直接將UI Outlet到TableViewController,還有自動對鍵盤的伸縮做處理,不會擋到TextField,所以Static的TableView在有需要輸入多項資料的時候非常好用。
下面為製作方式:
- 在storyboard先拉出一個TableViewController,將tableView設定為Static,設定section數量,我是設定3個,第0個section是個人資料那區塊,第1個section是黃色按鈕的變更名稱那塊,第2個section是黃色按鈕E-mail那塊
- 設定個section的cell數量分別是7個、5個、4個
- 在cell上擺上要顯示的UI
- 創一個UITableViewController.swift文件並連接上面的TableViewController
- 之後在UITableViewController.swift裡創一個Boolen陣列,用來追蹤要展開或者收合 var isOpens = Array(repeating: false, count: 2 ),因為我第0個section沒有要做展開收合,所以陣列裡只有2個值,預設是false
- 在numberOfRowsInSection裡的程式碼:
因為第0個section不會展開收合,所以永遠是7行,第1個section預設是收合所以return1,如果是展開return5行,以此類推
7.在didSelectRowAt裡的程式碼:
因為第0個section沒有展開收合功能,所以在第一行作判別,之後判別是否是按到section內的第一個cell,然後去判斷Boolen陣列內的值,如果true,就改為false,false就改為true,然後tableView.reloadSections,最重要是最下面的tableView.reloadData,一定要寫,不然會怪怪的。
其實也不一定要用按到第一個cell來展開收合,直接放一個buttom應該也可以,因為主要是要介紹展開收合,其他的一些設定如反白顏色那些,就請再自行調整囉。