我正在尝试重新排序tableView中的单元格。
//reordering logic starts here
func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
let item = array[sourceIndexPath.row]
array.remove(at: sourceIndexPath.row)
array.insert(item, at: destinationIndexPath.row)
}
表格视图有一个取消按钮,在点击时应该重置之前完成的表格视图单元格的重新排序。
@IBAction func cancelButtonTapped(_ sender: Any) {
let alert = UIAlertController(title: "Multiple Actions", message: "The alert has more than one action which means more than one button.", preferredStyle: UIAlertControllerStyle.actionSheet)
let cancelReorder = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default) { _ in
}
我应该如何在cancelReorder警报行动中实现相同的目标?
我是IOS开发和快速的新手。 任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用两个数组,例如originalArray
和currentArray
var originalArray:[String]?
var currentArray:[String]?
override func viewDidLoad() {
super.viewDidLoad()
originalArray = ["1", "2", "3"]
currentArray = originalArray
}
originalArray
永远不会更改且它具有原始值,而是currentArray
随排序/过滤而变化,而且将是UITableViewDataSource
使用的值。
因此,每当您想要重置currentArray
时(例如:在完成警报操作时),您可能会这样做:
let cancelReorder = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default) { _ in
currentArray = originalArray // reset the current array with the original values
tableView.reloadData() // this will refresh the table view
}
答案 1 :(得分:0)
检查以下代码:
let arrOriginal = ["Test 1", "Test 2", "Test 3", "Test 4", "Test 5",]
var arrCopy = [String]()
viewDidLoad()
中的
arrCopy = arrOriginal
警告的取消按钮:
let alert = UIAlertController(title: "Multiple Actions", message: "The alert has more than one action which means more than one button.", preferredStyle: UIAlertControllerStyle.actionSheet)
let cancelReorder = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default) { _ in
arrOriginal = arrCopy
}
答案 2 :(得分:0)
首先为视图设置masterList和filteList。 filterlist包含有序的masterlist集合。当按下按钮应该工作逻辑并将项目从masterList插入到filterList并重新加载tableview。你应该将fileterlist设置为tableview的数据源。