我正在尝试滑动以从我的tableview中删除单元格,每次尝试这样做时都会出错。
这是我实际删除的代码
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
self.tableView.beginUpdates()
self.feedData.removeObjectAtIndex(indexPath.row) // also remove an array object if exists.
self.tableView.deleteRowsAtIndexPaths(NSArray(object: NSIndexPath(forRow: indexPath.row, inSection: 1)) as [AnyObject], withRowAnimation: UITableViewRowAnimation.Left)
// self.tableView.deleteRowsAtIndexPaths(NSArray(object: NSIndexPath(forRow: indexPath.row, inSection: 1)) as [AnyObject], withRowAnimation: UITableViewRowAnimation.Left)
self.tableView.endUpdates()
} else if editingStyle == .Insert {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
这就是我在我的章节中回归的内容
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
我是初学者所以忍受我:)
答案 0 :(得分:1)
您需要使用以下两个函数来处理滑动删除:
func tableView(tableView: UITableView!, canEditRowAtIndexPath indexPath: NSIndexPath!) -> Bool {
return true
}
func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {
if (editingStyle == .Delete) {
// handle delete (by removing the data from your array and updating the tableview)
self.tableView.beginUpdates()
self.feedData.removeObjectAtIndex(indexPath.row) // also remove an array object if exists.
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Left)
self.tableView.endUpdates()
}
根据Apple的功能tableView(_:canEditRowAtIndexPath:)
:
允许数据源排除将各行视为可编辑行。可编辑行在其单元格中显示插入或删除控件。如果未实现此方法,则假定所有行都是可编辑的。不可编辑的行忽略UITableViewCell对象的editingStyle属性,并且不对删除或插入控件进行缩进。可编辑但不希望显示插入或删除控件的行可以从
UITableViewCellEditingStyleNone
委托方法返回tableView:editingStyleForRowAtIndexPath:
。
我希望这对你有所帮助。