我正在玩TableViews并制作列表。但是,我完全不知道该怎么做的一件事就是创建一个由日期分隔的任务列表。
例如,如果我需要在6月15日打电话给朋友,祝他生日快乐,而不是tableCell告诉我打电话给他,它将被该日期分隔。
谢谢
答案 0 :(得分:0)
您必须在该部分中进行日期,并且任务已经在单元格中。大致如此:
import UIKit
struct ToDo {
let date: Double
let todo: [String]
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var array: [ToDo] = [ToDo(date: 1560640981, todo: ["call a friend to wish him happy birthday"]), ToDo(date: 1557962581, todo: ["Buy mom flowers", "By milk"])]
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension ViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return array.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array[section].todo.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let dateInUnix = array[section].date
let date = Date(timeIntervalSince1970: dateInUnix)
let dayTimePeriodFormatter = DateFormatter()
dayTimePeriodFormatter.dateFormat = "MMM dd YYYY hh:mm a"
let dateString = dayTimePeriodFormatter.string(from: date)
return dateString
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = self.array[indexPath.section].todo[indexPath.row]
return cell
}
}
您将获得如下内容: enter image description here