我有一個問題,我想顯示一個tableview,但在各部分由每個項目的「狀態」分隔。我知道如何用一個簡單的字符串數組做到這一點,但我不能做一個類(Aluno)陣列這項工作,這是我到目前爲止的代碼:UITableView不顯示所有部分
import UIKit
class DeliveriesTVC: UITableViewController {
let sections = ["Delivered", "Not Delivered"]
var studentList: [Array<Student>] = [[], []]
override func viewDidLoad() {
super.viewDidLoad()
for i in 0...5{
studentList[0].append(Student(alunoNome: "Aluno \(i)", alunoImg: "dani_test", alunoStatus: "Delivered"))
}
for i in 6...10{
studentList[1].append(Student(alunoNome: "Aluno \(i)", alunoImg: "dani_test", alunoStatus: "Not Delivered"))
}
self.title = "Deliveries"
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cellEntrega = tableView.dequeueReusableCell(withIdentifier: "EntregaCell", for: indexPath) as? EntregaCell {
let entregaCell = studentList[indexPath.section][indexPath.row]
// here i call a function in my TableViewCell class that update the cell itself
cellEntrega.updateAlunoUI(Aluno: entregaCell)
return cellEntrega
} else {
return UITableViewCell()
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listaAlunos[section].count
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return self.sections[section]
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
}
在輸出中,我只是得到即使在我設置每個部分的名稱和部分的數量的情況下,「第一部分」也顯示並且沒有名字。我到處尋找,但我找不到解決方案。
你真的需要弄清楚你的數據源。你的'cellForRowAt'基於一個名爲'studentList'的數組。你的'numberOfRowsInSection'基於一個名爲'listaAlunos'的數組(可能是一個翻譯監督)。你的'titleForHeaderInSection'是基於另一個名爲'sections'的數組。而且你不必要地使用'2'來硬編碼'numberOfSections'。不要那麼難。 – rmaddy
是的,這是一個翻譯問題,他們實際上是一樣的,對不起!我也硬編碼了部分的數量,因爲我真的嘗試了所有的東西,最後我的問題是錯誤的功能,我不知道。謝謝您的幫助! –