我UITableView
内有UIViewController
。我试图在用户点击BarButtonItem
中的NavigationBar
时,表视图进入编辑模式,因此用户可以拖动并重新排序单元格。
然而,发生的事情是我只需按下编辑按钮,没有任何反应。
这就是我的尝试:
对于数组声明:
var tester = ["1", "2", "3"]
对于按钮声明:
@IBAction func editButtonPressed(sender: AnyObject) {
self.editing = !self.editing
}
对于各种tableview函数:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return tester.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("editCell", forIndexPath: indexPath) as! EditTableViewCell
cell.nameHolder?.text = tester[indexPath.row]
// Configure the cell...
return cell
}
func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
var itemToMove = tester[fromIndexPath.row]
tester.removeAtIndex(fromIndexPath.row)
tester.insert(itemToMove, atIndex: toIndexPath.row)
}
func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
// Return NO if you do not want the item to be re-orderable.
return true
}
可能导致此错误的原因是什么?
答案 0 :(得分:0)
Swift 4.1
在→func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
添加此行以配置单元格:
cell.isEditing = self.tableView(tableView, canMoveRowAt: indexPath)
答案 1 :(得分:0)
Ran Hassid在其评论中对此有最正确的答案。 这样可以解决问题:
@IBOutlet weak var tableView: UITableView!
@IBAction func editButtonPressed(sender: AnyObject) {
tableView.setEditing(!tableView.isEditing, animated: true)
}