Как переместить ячейки в соответствии с сортировкой при нажатии на ячейку? - PullRequest
0 голосов
/ 07 июня 2019

Я ищу способ переместить ячейку, когда постучал по ее месту в соответствии с сортировкой.

Я гуглил и не нашел много и лично никогда не делал ничего подобного раньше.

Это мой сорт

 let sort = NSSortDescriptor(key: #keyPath(Item.name), ascending: true)

Это мой didSelectRow

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let item = fetchedRC.object(at:indexPath)

    item.isComplete.toggle()

    do {
        try context.save()
        //tableView.deselectRow(at: [indexPath.row], animated: true)
        //tableView.reloadRows(at: [indexPath], with: .automatic)
    } catch let error as NSError {
        print("Could not save. \(error.localizedDescription)")
    }
}

Я бы хотел, чтобы выбранные ячейки были вычеркнуты (я уже обработал) и переместились внижняя часть tableView, что делает мой вид.Сортировка работает только при загрузке, как и ожидалось, но я хотел бы переместить выделенную ячейку на соответствующее место после первого появления таблицы.

РЕДАКТИРОВАТЬ: Я решил проверить сортировку, и это былоустановите мои имена вместо моего поля isComplete, чтобы оно теперь перемещало их соответствующим образом, но теперь оно не вычеркивает текст, как это должно быть.

1 Ответ

0 голосов
/ 08 июня 2019

Я наконец нашел это решение, и оно, кажется, работает так, как задумано. Все, что мне нужно было сделать, это заменить мои захватывающие .move на это.

case .move:
        if indexPath != nil {
            self.tableView.deleteRows(at: [currentIndexPath!], with: .automatic)
        }
        if let newIndexPath = newIndexPath {
            self.tableView.insertRows(at: [newIndexPath], with: .automatic)
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...