Как скрыть другие действия с ячейками при смахивании - PullRequest
0 голосов
/ 11 июля 2019

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

@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let deleteAction = UIContextualAction(style: .normal, title: nil) { [weak self] (action, view, complete) in

        self?.deleteAction(tableView, at: indexPath)
        complete(true)
    }
    if let cgImageX =  #imageLiteral(resourceName: "alarmDelete").cgImage {
        deleteAction.image = ImageWithoutRender(cgImage: cgImageX, scale: UIScreen.main.nativeScale, orientation: .up)
    }
    deleteAction.backgroundColor = UIColor.white.withAlphaComponent(0)

    let editAction = UIContextualAction(style: .normal, title: nil) { [weak self] (action, view, complete) in
        self?.editAction(tableView, at: indexPath)
        complete(true)
    }
    if let editImage =  #imageLiteral(resourceName: "edit").cgImage {
        editAction.image = ImageWithoutRender(cgImage: editImage, scale: UIScreen.main.nativeScale, orientation: .up)
    }
    editAction.backgroundColor = UIColor.white.withAlphaComponent(0)
    return UISwipeActionsConfiguration(actions: [deleteAction, editAction])
}

Можно ли скрыть другие действия при полном перемещении ячейки?Exibit A Exibit B

Видео: https://i.imgur.com/9betbst.mp4

Спасибо

1 Ответ

2 голосов
/ 11 июля 2019

Вы должны обновить свой код следующим образом, чтобы исправить вашу проблему.

let swipeActionConfig = UISwipeActionsConfiguration(actions: [deleteAction, editAction])
swipeActionConfig.performsFirstActionWithFullSwipe = false
return swipeActionConfig

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

...