Swift UITableView 多個section 分組顯示 🔢
在開發 iOS App 時,有時候會需要將資料以多個 section 分組顯示,而 UITableView 就是一個很好的解決方案。本文將介紹如何使用 Swift 來實現 UITableView 多個 section 分組顯示的功能。
前置準備
首先,我們需要先建立一個新的 Xcode 專案,並在 Storyboard 中加入一個 UITableView,並將它的 delegate 和 dataSource 都拉到 ViewController 上,如下圖所示:
建立資料模型
接著,我們需要建立一個資料模型,用來存放我們的資料,以下是一個簡單的資料模型:
struct Section {
var name: String
var items: [String]
}
建立資料
接著,我們需要建立一個資料來源,用來存放我們的資料,以下是一個簡單的資料來源:
let sections = [
Section(name: "Fruits", items: ["Apple", "Orange", "Banana"]),
Section(name: "Vegetables", items: ["Carrot", "Potato", "Tomato"])
]
實現 UITableViewDataSource
接著,我們需要實現 UITableViewDataSource 中的方法,以便將資料顯示在 UITableView 上,以下是實現 UITableViewDataSource 中的方法:
func numberOfSections(in tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sections[section].items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let item = sections[indexPath.section].items[indexPath.row]
cell.textLabel?.text = item
return cell
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sections[section].name
}
實現 UITableViewDelegate
最後,我們需要實現 UITableViewDelegate 中的方法,以便對 UITableView 進行一些設定,以下是實現 UITableViewDelegate 中的方法:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 44
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
結論
透過以上的步驟,我們就可以使用 Swift 來實現 UITableView 多個 section 分組顯示的功能,這樣就可以將資料以多個 section 分組顯示在 UITableView 上,讓我們的 App 更加完整。
推薦閱讀文章
Swift UITableView 多個section 分組顯示
Swift UITableView 程式碼建立
Swift UITableView 自訂Cell
Swift UITableView 動態原型Cell
Swift UITableView 靜態Cell</a