在表格视图中显示日期数组,Swift

时间:2016-12-22 19:55:52

标签: swift uitableview swift3 tableview nsdictionary

在搜索SO之后,我发现在表视图控制器中分组和显示数据有很多问题,但没有一个要求按日期排序。

我有一组日期对象

let dateObjects = [2016-12-22 16:00:00 +0000, 2016-12-22 16:15:00 +0000, 2016-12-23 16:00:00 +0000, 2016-12-23 16:15:00 +0000, 2016-12-23 16:30:00 +0000, 2016-12-24 16:00:00 +0000]

如何从上面的dateObjects创建如下所示的数组。

let items = [["4:00 pm", "4:15 pm"], ["4:00 pm", "4:15 pm", "4:30 pm"], ["4:00 pm"]]

我希望将日期分组并显示在表格视图中,如下图所示。请注意,日期和时间按升序排列。

我试图将字典中的日期分组,以便意识到字典没有被排序,因此我不会得到我想要的订单。

Appointments

当我提供一系列项目时,此代码有效。 但是如何创建类似日期对象的项目数组?

let section = ["Thu, 22 Dec", "Fri, 23 Dec", "Sat, 24 Dec"]

let items = [["4:00 pm", "4:15 pm"], ["4:00 pm", "4:15 pm", "4:30 pm"], ["4:00 pm"]]


override func numberOfSections(in tableView: UITableView) -> Int {

    return self.section.count
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return self.items[section].count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath)
    cell.textLabel?.text = self.items[indexPath.section][indexPath.row]
    cell.accessoryType = UITableViewCellAccessoryType.disclosureIndicator
    return cell
}

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return self.section[section]
}


var valueToPass:String!
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath){
    // Get Cell Label
    let indexPath = tableView.indexPathForSelectedRow!
    let currentCell = tableView.cellForRow(at: indexPath)! as UITableViewCell

    valueToPass = currentCell.textLabel?.text
    performSegue(withIdentifier: "TableDetailSegue", sender: self)
}

1 个答案:

答案 0 :(得分:1)

我不明白这是什么问题。你说:

  

我希望将日期分组并显示在表格视图中,如下图所示。请注意,日期和时间按升序排列。

     

我试图将字典中的日期分组,以便意识到字典没有被排序,因此我不会得到我想要的订单。

好的,但是你展示了你的代码,并且没有字典随处可见!相反,您有一个数组和一个数组数组。这看起来应该有效。当然,我将你的代码复制到一个项目中并运行它,这就是我得到的:

enter image description here

嗯,这看起来很像你说的你想要的。 (除了事物的高度;你没有提供你的代码的那部分。但它是正确的数据正确分组和正确的顺序。)所以在我看来,你有代码,给出了所需的结果。因此,很难看出你的问题是什么。