Изменение порядка ячеек в UITableView - PullRequest
3 голосов
/ 09 февраля 2011

У меня есть tableView с 10 разделами, и у каждого раздела есть 3 строки.

Можно ли перезаписать раздел, используя методы tableViewDelegate

-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
  toIndexPath:(NSIndexPath *)toIndexPath {
}

Прямо сейчас, если я перетаскиваю строку из одного раздела и помещаю ее в другой раздел, она добавляется в этот раздел. Вид нижнего колонтитула также не выбирается для изменения порядка и остается в исходном разделе.

Есть идеи?

Спасибо

Ответы [ 2 ]

4 голосов
/ 16 мая 2015

Так как это стало одним из первых результатов в 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)
}
4 голосов
/ 09 февраля 2011

Ознакомьтесь с этим учебником: Добавить, удалить и изменить порядок строк UITableView .В конце урока есть рабочий проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...