9
votes

Ne peut pas toucher pendant l'animation (animation de bloc)

J'ai une vue avec uibutton , uitextfield et un uiImageView pour l'arrière-plan.

in ViewDiDload J'essaie d'animer uiImageView de alpha = 0 à alpha = 1 à l'aide du bloc. C'est assez basique, voici le code: xxx

qui fonctionne bien. Mais pendant ces 1,5 seconde d'animation, ma touche dans la vue actuelle semble être désactivée. Je ne peux cliquer sur aucun des boutons ou des champs de texte avant la fin de l'animation.

Merci d'avance


0 commentaires

6 Réponses :


30
votes

Vous devez utiliser l'option uiviewanimationOptionAnserRinterAction forte> comme dans l'exemple suivant:

[UIView animateWithDuration:1.0 
                      delay:0 
                    options:UIViewAnimationOptionAllowUserInteraction 
                 animations:^{ myView.alpha = 0.5; } 
                 completion:NULL];


2 commentaires

Je ne crois rien de mal avec mon code aussi bien que le vôtre. Les différentes ne diffèrent que de retard et d'options. essayé cependant, ne travaille pas ...


>> La différence que celle-ci a du retard et des options. - Assurez-vous que vous ne définissez pas Alpha à zéro. Utilisez au moins 0,1 au lieu de 0,0 animations: ^ {myview.alpha = 0,1; }



0
votes

Utiliser AnimateDaturation: Délai: Options: Animations: Achèvement: Méthode et définissez UIVIEWAnimationOptionAlinduserInterAction comme option


0 commentaires

0
votes

J'ai fini par ne pas faire ça. Vous ne pouvez pas toucher une vue qui aime toujours l'animation. C'est ma conclusion. Serait heureux d'entendre une réflexion sur cela.


0 commentaires

1
votes

On dirait que des boutons d'animation en général rendent leurs états de clics assez finky. La solution que j'ai proposée pour cela devait que l'élément d'animation soit simplement un UIView avec tous les styles de boutons. Avant que l'UIView anime, j'ajoute un vrai bouton à la vue au-dessus de l'UIView avec un fond clair à l'emplacement que je souhaite que l'interaction de l'utilisateur se produise. Ajoute définitivement une étape supplémentaire mais est très fiable. xxx


0 commentaires

2
votes

UIView UserActionActionAction de l'animation à l'aide de . useAserAserActionAnterAction pour Swift 3 +, iOS 10

Ajouter à l'animation Appelez le drapeau UIViewanimationOptions . / code > xxx


0 commentaires

0
votes

Ce n'est-ce pas quelque chose qui se passe sur les applications iOS standard telles que les paramètres Back Back, menu Swipe. Il n'y a aucun moyen de toucher à l'écran lorsqu'il s'agit d'animation alors que vous pouvez toucher à Android.


1 commentaires

Comme il est actuellement écrit, votre réponse n'est pas claire. S'il vous plaît Modifier Pour ajouter des détails supplémentaires qui aideront les autres à comprendre comment cela répond à la question posée. Vous pouvez trouver plus d'informations sur la façon d'écrire de bonnes réponses dans le centre d'aide .