微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法使用日期/时间对表视图的行进行排序?迅速

如何解决有没有办法使用日期/时间对表视图的行进行排序?迅速

我在应用程序中有一个消息传递功能,我正在尝试根据每条消息中包含的时间戳对 tableView 的单元格进行排序。我有两个字符串用于填充两个不同的自定义单元格。因此,我不能只重新排列字符串的内容,我需要重新排列行本身。

class messageThreadViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

func numberOfSections(in tableView: UITableView) -> Int {
    return 2
}

func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
       return finalItems.count
    } else {
       return finalItems2.count
    }
}

func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if indexPath.section == 0 {
      let cell = tableView.dequeueReusableCell(withIdentifier: "message1") as! MyTableViewCellThread
      cell.messagelabel?.text = finalItems[indexPath.row]
               return cell
    } else {
       let cell2 = tableView.dequeueReusableCell(withIdentifier: "message2") as! MyTableViewCellThread2
       cell2.messageLabel2?.text = finalItems2[indexPath.row]
               return cell2
    }
}

两个不同的字符串是 finalItems 和 finalitems2。我附上了正在运行的应用程序的图像,以帮助更好地了解我正在尝试做什么。如果我能更好地解释它,请告诉我。提前致谢!

screenshot simulator

解决方法

通常,在 tableview 中对单元格进行排序时,您只需对数组(数据源)本身进行排序,然后调用 tableView.reloadData() 方法。 对数组进行排序,最佳实践是

let sortedArray = array.filter { $0.timestamp > $1.timestamp } 
// This sort with descending order,just replace '>' with '<'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。