Подтвердить что ты не робот

Сложность, позволяющая пользователю взаимодействовать во время анимации 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()
    }

Почему это не работает? Любая помощь будет оценена. Спасибо!

4b9b3361

Ответ 1

Я исправил эту проблему, установив альфа-значение 0,1 вместо 0.0. Я не уверен, что это будет работать в вашем случае, но это показывает, что код обработки событий считал, что представление не было видимым и отключенным взаимодействием даже с установленным флажком UIViewAnimationOptionAllowUserInteraction. Как ни странно, установка альфа-0,01 не сработала, поэтому есть порог видимости, который вы должны оставаться выше.

Ответ 2

Я думаю, вы можете найти ответ в этом предыдущем сообщении.

Интересный бит сообщения:

анимация блока UIView по умолчанию блокирует взаимодействие с пользователем, и чтобы обойти ее, вам необходимо передать UIViewAnimationOptionAllowUserInteraction в качестве одного из параметров.