如何在点按按钮

时间:2017-11-24 09:52:04

标签: ios swift tableview

我正在尝试重新排序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开发和快速的新手。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以使用两个数组,例如originalArraycurrentArray

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的数据源。