使用壁橱排序日期,现在是第一个,过去是在底部

时间:2016-11-25 00:31:57

标签: ios arrays swift sorting date

我有一个tableview,其中有多个日期。我需要对日期进行排序,以便最下降的日期位于顶部((indexPath.row == 0)),过去的日期需要位于底部((indexPath.row == ´lastRows´))以及其他即将到来的日期之间。

我一直在寻找,但没有找到合适的解决方案。以下代码仅显示最早的日期 - 未能按照我的意愿将过去的日期放在底部。 (见图片更清楚的问题示例,我想要的那种:

  • 即将到来的
  • 即将来临2
  • 过去的日期 )

    dqItems.sort(by: {$0.date < $1.date})

有没有办法实现这个目标?或者,当日期成为过去时,将日期(及其单元格)推送到表格视图的底部?

enter image description here

2 个答案:

答案 0 :(得分:0)

只需将“小于”符号更改为“大于”:

dqItems.sort(by: {$0.date > $1.date})

答案 1 :(得分:0)

使用.sorted来获取已排序的副本,而不是使用.sort。然后搜索已排序的副本以查找当前时间所属的位置。使用该索引制作几个切片并将切片复制到您想要的位置(返回原始数组中)。