Как я могу перезагрузить данные таблицы после завершения анимации исчезновения swipeAction - PullRequest
0 голосов
/ 16 января 2019

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

У меня есть что-то вроде этого:

У меня есть что-то вроде этого:

Но я хочу, чтобы анимация затухания была такой

Я хочу эту анимацию

Мой код:

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
    var action = super.tableView(tableView, editActionsForRowAt: indexPath, for: orientation) ?? []

    guard orientation == .left else { return action }

    let checkAction = SwipeAction(style: .destructive, title: nil) { action, indexPath in     

        self.completeItem(at: indexPath)

    }
    action.append(checkAction)
    return action

}



private func completeItem(at indexPath: IndexPath){
    if let item = itemArray?[indexPath.row]{

        do{
            try realm.write {
                item.done = !item.done
            }

        }

        catch{

            print( error.localizedDescription)

        }
    }
    tableView.reloadData()

}

1 Ответ

0 голосов
/ 16 января 2019

Чтобы скрыть действие при выборе, вам нужно установить свойство hidesWhenSelected для действия.

checkAction.hidesWhenSelected = true

Кроме того, пример не перезагружает tableView. Вместо этого они используют анимацию для удаления точки. Вам нужно будет вручную отложить перезагрузку до завершения анимации скрытия.

См. Строку 156 для свойства

См. Строки 256 - 273 для анимации. https://github.com/SwipeCellKit/SwipeCellKit/blob/develop/Example/MailExample/MailTableViewController.swift

...