既存のリストにセクションを追加することはできますか?それとも何とかハードコーディングできますか?だから、その行3と4は、セクションで区切られ、行9と10は部分によって分離されているので、
に私はセクションを追加しようとしましたが、それは非常に成功しませんでした:テーブルビューのセクションを既存のリストに追加しますか?
リストファイル:
import Foundation
class ListItem {
var section = ""
var listItem = ""
var description = ""
var extraInfo = ""
var counter: Int = 0
init(section: String, listItem: String, description: String, ekstraInfo: String) {
self.section = section
self.listItem = listItem
self. description = description
self.ekstraInfo = ekstraInfo
}
}
ビューコントローラ:
let staticList: [ListItem] =
[
ListItem(section: "Section 1", listItem: "Bananas", description: "Yellow", ekstraInfo: "Bent"),
ListItem(section: "Section 2", listItem: "Apples", description: "Red", ekstraInfo: "Round"),
ListItem(section: "Section 3", listItem: "Strawberries", description: "Red", ekstraInfo: ""),
ListItem(section: "Section 4", listItem: "Carrots", description: "Orange", ekstraInfo: ""),
ListItem(section: "Section 5", listItem: "Lime", description: "Green", ekstraInfo: "Round"),
]
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
if (tableView == MainTableView)
{
return staticList[section].section
}else
{
return nil
}
}
EDIT:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UITableViewCell
cell = tableView.dequeueReusableCell(withIdentifier: "MenuCell", for: indexPath)
if let customCell = cell as? MenuCell
{
let itemIndex = indexPath.row
let listItem = staticList[itemIndex]
customCell.itemLabel.text = listItem.listItem
customCell.descriptionLabel.text = listItem.description
customCell.exstraInfoLabel.text = listItem.exstraInfo
customCell.counterLabel.text = "\(listItem.counter)"
customCell.delegate = self
}
return cell
}
}
静的リストを '[[ListItem]]'の配列として簡単に書式設定することができます。それぞれの「セクション」はListItemの配列です... –