Закройте UISwipeActionsConfiguration, проведя пальцем назад

Я реализовал завершающие действия смахивания с помощью нового iOS 11 UISwipeActionsConfiguration API, и я могу показать их, проведя пальцем от края, могу провести полностью влево и т. д.

Но я не могу скрыть эти действия, вернувшись в исходное положение. Если я перетащу немного влево, а затем обратно вправо, он исчезнет (см. GIF). Он также сбрасывается нажатием на ячейку.

Официальное почтовое приложение поддерживает перетаскивание, чтобы скрыть действия смахивания, поэтому в API тоже может быть способ.

См. пример проекта здесь: https://github.com/nezhyborets/ios-case-study-playgrounds/tree/master/UISwipeActionsConfiguration

введите описание изображения здесь


person Oleksii Nezhyborets    schedule 02.04.2018    source источник


Ответы (1)


Отличный вопрос!

Это не прямая конфигурация, но если вы также реализуете действие для leading в дополнение к существующему trailing:

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let action = UIContextualAction(style: .normal, title: "bla") { (action, view, success) in
        success(true)
    }
    return UISwipeActionsConfiguration(actions: [action])
}

Это даст вам желаемый эффект.

К сожалению, для этого требуется действие для смахивания вправо. Я пытался сделать массив actions [], но это ничего не дает.

person Aaron    schedule 02.04.2018