按Section收起或展開TableView (Swift寫法)

延續這篇文章「按Section收起或展開TableView (Objective-C寫法)」的邏輯,在程式則用Swift改寫,以下提出一些不同的地方跟大家分享,若有什麼想法歡迎提出來切磋 ^_^

在定義資料時,Swift在宣告陣列的方式就比較簡潔明瞭。

在if這個邏輯流程的簡式寫法與Objective-C不同,一併寫出來參考。

TableView的Section View,我是直接在Storyboard拖曳元件來做,利用Identifier來宣告,這個好處就是可以不用寫一連串的程式來做(在Objective-C是用這個方式來處理),大家可以互相比較看看。

再新增一個Class為TableViewCell的Swift檔案,名稱為CustomHeaderCell,把剛剛建立的元件拉IBOutlet到剛剛新增的Swift檔案裡。

然後請別忘記把Class欄位輸入剛剛新增的檔案名稱 CustomHeaderCell,這樣才會成功連結起來。

再來看程式部分。

在最後一句的return,是關鍵,之前寫 return headerCell 後再執行程式,結果在每次點選收起/展開的按鈕後,Section都會莫名給消失了,在stackoverflow.com爬文後,改寫為 return headerCell.contentView 後就正常了。

Objective-C 及 Swift 的程式碼都寫出來了,下回來談談看要怎麼讓這兩者放在同一個專案裡,並互相抓彼此的變數或函式。