Отсрочка распознавания жестов в быстрой (UISwipeGestureRecognizer) - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть распознаватель жестов смахивания, который я отключаю после того, как пользователь смахивает.Вот тогда у меня есть серия анимаций.Во-первых, вид будет двигаться в направлении, которое пользователь проводит.Затем в зависимости от местоположения, в котором он останавливается, происходит другая анимация в зависимости от местоположения, в котором он остановился. Затем я полностью включаю распознаватель жестов в конце функции, которая обрабатывает этот пролистывание.Проблема в том, что распознаватель включается слишком быстро, и поэтому, если пользователь быстро проведет пальцем в другом направлении, анимация будет происходить только в неправильном месте (из-за того, что вид находится в другом месте).У меня вопрос, как я могу создать функцию, которая ждет X времени, а затем снова включает распознаватель?

1 Ответ

0 голосов
/ 20 сентября 2019
// 1
var toDoSmth: (()->void)? = nil
// 2
toDoSmth = { 
     // turns back on the recognizer 
     // and do any delayed task
}

// 3
let delayedTime = DispatchTime.now() + .seconds(1)
DispatchQueue.main.asyncAfter(deadline: delayedTime) {
     toDoSmth()
}

Здесь: 1, 2 - созданная переменная / автозаполнение;3 - запустить код через 1 секунду.

...