Так как это стало одним из первых результатов в Google, я подумал, что добавлю быстрый код. Objective-C будет почти таким же, за исключением имени indexPaths в moveRowAtIndex
.
Включить режим редактирования:
Если вы используете UITableViewController, вы переключаете режим редактирования с помощью:
func toggleEditing() {
self.editing = !self.editing
}
Если вы не используете UITableViewController (например, вы добавили табличное представление в UIViewController (или любой другой View Controller, кроме UITableViewController), то вы переключаете его:
func toggleEditing() {
self.editing = !self.editing
}
Примечание: tableView
- это имя вашего UITableView.
Реализация canMoveRowAtIndexPath
override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return true
}
Реализация moveRowAtIndexPath
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
var itemToMove = tableData[fromIndexPath.row]
tableData.removeAtIndex(fromIndexPath.row)
tableData.insert(itemToMove, atIndex: toIndexPath.row)
}