Swift 列表后显示 3 个 UITableView 部分
Swift 3 UITableView sections showing after the list
我正在尝试使用 swift 3 UITableViewController 创建产品列表,但这些部分显示在产品列表之后。一定是我遗漏了什么,到处都找不到
这是一个简化的代码
let data = [["0,0", "0,1", "0,2"], ["1,0", "1,1", "1,2"], ["2,0", "2,1", "2,2"], ["3,0", "3,1", "3,2"]]
override func numberOfSections(in tableView: UITableView) -> Int {
return data.count//productCategoriesSections.count
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data[section].count//productCategories[section].count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "defaultCategoryCell", for: indexPath) as! CategoryDefaultTableViewCell
cell.titleTextView.text = data[indexPath.section][indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
return "Section \(section)"
}
screenshot
这是因为你使用了错误的回调。
使用 override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
而不是 override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String?
。
前者会将文本作为 header 放置在该部分上方。后者放在底部。
我正在尝试使用 swift 3 UITableViewController 创建产品列表,但这些部分显示在产品列表之后。一定是我遗漏了什么,到处都找不到
这是一个简化的代码
let data = [["0,0", "0,1", "0,2"], ["1,0", "1,1", "1,2"], ["2,0", "2,1", "2,2"], ["3,0", "3,1", "3,2"]]
override func numberOfSections(in tableView: UITableView) -> Int {
return data.count//productCategoriesSections.count
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data[section].count//productCategories[section].count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "defaultCategoryCell", for: indexPath) as! CategoryDefaultTableViewCell
cell.titleTextView.text = data[indexPath.section][indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
return "Section \(section)"
}
screenshot
这是因为你使用了错误的回调。
使用 override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
而不是 override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String?
。
前者会将文本作为 header 放置在该部分上方。后者放在底部。