Задержка перетаскивания представления коллекции - PullRequest
0 голосов
/ 30 ноября 2018

Есть ли способ настроить время, необходимое для начала перетаскивания в ячейке представления коллекции?Похоже на UILongPressGestureRecognizer minimumPressDuration свойство.

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

1 Ответ

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

Поскольку лучшего решения не существует, я все еще использовал подход «итерации по жестам».

Код следующий:

gestureRecognizers?.forEach { (recognizer) in
    if let longPressRecognizer = recognizer as? UILongPressGestureRecognizer {
        longPressRecognizer.minimumPressDuration = Constants.DragLongPressMinimumDuration
    }
}

Constants.DragLongPressMinimumDuration - это Double, определенное в Constants struct.

Важное примечание : сделайте это в самом представлении коллекции (а не в ячейках) после настройки перетаскивания.

Решение работает нормально для версий iOS 11и 12.

Конечно, это на грани использования частного API, фактический класс этого распознавателя равен _UIDragLiftGestureRecognizer (который является частью частного API и подклассом UILongPressGestureRecognizer).Но поскольку мы приводим его к UILongPressGestureRecognizer, технически мы не используем закрытый API.

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