如何解决有没有办法使用日期/时间对表视图的行进行排序?迅速
我在应用程序中有一个消息传递功能,我正在尝试根据每条消息中包含的时间戳对 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。我附上了正在运行的应用程序的图像,以帮助更好地了解我正在尝试做什么。如果我能更好地解释它,请告诉我。提前致谢!
解决方法
通常,在 tableview 中对单元格进行排序时,您只需对数组(数据源)本身进行排序,然后调用 tableView.reloadData()
方法。
对数组进行排序,最佳实践是
let sortedArray = array.filter { $0.timestamp > $1.timestamp }
// This sort with descending order,just replace '>' with '<'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。