Я пытаюсь отобразить заголовок раздела с месяцем и годом, когда ячейка была создана как текст в заголовке раздела. Это мой код, но он отображает только один заголовок раздела. Любая идея, почему и как я могу заставить ее отображать год и месяц, была создана ячейка?Добавление заголовка таблицы TableViewCell каждый раз, когда создается новая ячейка, отображающая месяц и год - swift
import UIKit
class PRViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tblTasks : UITableView!
//For persisting data
let defaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
self.tblTasks.reloadData()
tblTasks.registerNib(UINib(nibName: "PRTableViewCell", bundle: nil), forCellReuseIdentifier: "PRTableCell")
tblTasks.tableFooterView = UIView()
}
override func viewWillAppear(animated: Bool) {
self.tblTasks.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return 1
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "Your PR's"
}
//Define how our cells look - 2 lines a heading and a subtitle
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let identifier = "PRTableCell"
var cell: PRTableViewCell! = tableView.dequeueReusableCellWithIdentifier(identifier) as? PRTableViewCell
if cell == nil {
tableView.registerNib(UINib(nibName: "PRTableViewCell", bundle: nil), forCellReuseIdentifier: identifier)
cell = tableView.dequeueReusableCellWithIdentifier(identifier) as? PRTableViewCell
}
// Assign the contents of our var "items" to the textLabel of each cell
// cell.textLabel!.text = taskMgr.tasks[indexPath.row].name
// cell.detailTextLabel!.text = taskMgr.tasks[indexPath.row].desc
cell.PRLabel.text = taskMgr.tasks[indexPath.row].name
cell.NotesLabel.text = taskMgr.tasks[indexPath.row].desc
cell.WeightLabel.text = taskMgr.tasks[indexPath.row].weight + "lb"
return cell
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
if (editingStyle == UITableViewCellEditingStyle.Delete){
taskMgr.removeTask(indexPath.row)
tblTasks.reloadData()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
let numberOfSections = taskMgr.tasks.count
return numberOfSections
}
}
Вы получаете только один заголовок раздела для каждого раздела. Изображение, которое вы связали, похоже, отображает две ячейки в одном разделе, и только один заголовок раздела. Чтобы отобразить дату, вам необходимо получить дату, которая представляет все ячейки в этом разделе из вашего источника данных. Затем используйте 'NSDateFormatter' для создания' String', а затем верните это 'String'. Аналогично примерно так: 'let formatter = NSDateFormatter(); formatter.dateStyle = .ShortStyle; formatter.timeStyle = .NoStyle; let dateString = formatter.stringFromDate (sectionHeaderDate); return dateString' –
@RoboticCat Я хочу отображать каждую ячейку в отдельном разделе. затем используйте дату, когда ячейка была добавлена как текст заголовка раздела? Поместил бы это в переопределяющий func-метод? –
Верните правильное количество «разделов» (из вашей модели) в 'numberOfSectionsInTableView:' и верните '1' в' tableView: numberOfRowsInSection: '. Затем установите правильную информацию для каждой ячейки в таблице table: cellForRowAtIndexPath: '. Наконец, в 'tableView: titleForHeaderInSection:' получите дату создания для этого раздела и отформатируйте его, как описано выше. –