Сложность, позволяющая пользователю взаимодействовать во время анимации UIView
Я изо всех сил пытаюсь понять, как разрешить взаимодействие пользователя с представлением, поскольку оно анимируется.
Здесь ситуация: у меня есть UIView cardView
, который содержит подтексты card
. card
- это перетаскиваемые плитки, похожие на то, как карты в Tinder перетаскиваются/прокручиваются.
Я пытаюсь вымыть карту, используя animateWithDuration
, анимируясь на cardView.alpha = 0
. Логически это также приведет к исчезновению всех объектов subviews (card
). В этом конкретном случае я нацелен только на один подтекст card
. Однако во время анимации я не могу перетащить/взаимодействовать с card
.
Вот код, который я использую:
UIView.animateWithDuration(
duration,
delay: 0,
options: UIViewAnimationOptions.AllowUserInteraction,
animations: {self.cardView.alpha = 0}
) {
_ in
println("Card faded out")
card.removeFromSuperview()
}
Почему это не работает? Любая помощь будет оценена. Спасибо!
Ответы
Ответ 1
Я исправил эту проблему, установив альфа-значение 0,1 вместо 0.0. Я не уверен, что это будет работать в вашем случае, но это показывает, что код обработки событий считал, что представление не было видимым и отключенным взаимодействием даже с установленным флажком UIViewAnimationOptionAllowUserInteraction. Как ни странно, установка альфа-0,01 не сработала, поэтому есть порог видимости, который вы должны оставаться выше.
Ответ 2
Я думаю, вы можете найти ответ в этом предыдущем сообщении.
Интересный бит сообщения:
анимация блока UIView по умолчанию блокирует взаимодействие с пользователем, и чтобы обойти ее, вам необходимо передать UIViewAnimationOptionAllowUserInteraction в качестве одного из параметров.