Как распознать жест касания во время анимации вида - PullRequest
8 голосов
/ 07 сентября 2011

Просто интересно, есть ли способ заставить представление распознавать жесты касания во время его анимации? Я работаю над представлением, к которому привязана линия кешаплееров. Когда пользователь выполняет панорамирование вида (жест панорамирования), строка следует соответственно до тех пор, пока пользователь не прекратит панорамирование. В этот момент выполняется анимация, которая возвращает вид обратно в исходное положение, а также слой привязи. Теперь моя единственная реальная проблема заключается в том, что, пока вид и привязка анимируются, вид не реагирует на жесты касанием…

Кто-нибудь знает некоторые хитрости? Я надеюсь, что мое объяснение было понятно и спасибо заранее!

(если концепция привязанного представления не ясна, есть бесплатное приложение, называемое discovr apps, которое даст пример).

Ответы [ 3 ]

15 голосов
/ 07 сентября 2011

Я предполагаю, что вы используете [UIView animateWithDuration: delay: options: animations: completion:]; метод анимации.

Если это так, вам нужно передать UIViewAnimationOptionAllowUserInteraction в качестве опции, чтобы анимированный вид реагировал на прикосновения во время анимации.

3 голосов
/ 25 июля 2017

(Swift 3). Опция Pass .allowUserInteraction

UIView.animate(withDuration: 0.75, delay: 0.0, options: [.allowUserInteraction], animations: {
      // Desired animation(s) 
}, completion: { (finished: Bool) in
        // Completion
})
2 голосов
/ 07 сентября 2011

Вам нужно установить две опции - UIViewAnimationOptionAllowUserInteraction и UIViewAnimationOptionAllowAnimatedContent. Первый позволяет вам взаимодействовать с представлениями во время анимации, второй заставляет перерисовывать представления для каждого кадра анимации и не использовать снимки начального и конечного кадров.

...