Comment faire pour attendre jusqu'à ce qu'une animation est terminée en Swift?
J'essaie de laisser un bouton "shake" avant la prochaine question à mon quiz va charger.
Ressemble l'animation
var timer = NSTimer()
UIView.animateWithDuration(0.1, animations: {
self.IMGVIEWcat.center = CGPointMake(self.IMGVIEWcat.center.x + 2, self.IMGVIEWcat.center.y)
})
UIView.animateWithDuration(0.2, animations: {
self.IMGVIEWcat.center = CGPointMake(self.IMGVIEWcat.center.x - 4, self.IMGVIEWcat.center.y)
})
UIView.animateWithDuration(0.3, animations: {
self.IMGVIEWcat.center = CGPointMake(self.IMGVIEWcat.center.x + 2, self.IMGVIEWcat.center.y)
})
Après cela, la fonction suivante est appelée
func QueryInformations(){
println("QueryInformationsStart")
self.ActivityIndicator.hidden = false
ObjectIDsArrayCount = ObjectIDsArray.count
var RandomQuestion = Int(arc4random_uniform(ObjectIDsArray.count + 0))
var QuestionID:String = ObjectIDsArray[RandomQuestion]
var query : PFQuery = PFQuery(className: "AddonQuiz")
query.getObjectInBackgroundWithId(QuestionID){
(ObjectHolder : PFObject!, error : NSError!) -> Void in
...
Maintenant, l'animation démarre mais dès que la question suivante est chargé, est-il facile d'attente pour un débutant de mettre en œuvre une "attente" jusqu'à ce que l'animation est réalisée?
J'ai tenté de
var complet == true
Dans l'animation
Et dans la fonction de requête
if complet = true {....
Mais cela ne fonctionne pas pour moi, aussi, j'ai trouvé quelques informations sur le gestionnaire d'achèvement, mais n'ont pas de travail dans mon code.
if complet = true {...}
n'est pas ce que vous voulez utiliser. Utilisation if complet == true {...}
à la place. Par la façon dont vous devriez utiliser les completion
bloc à la fin de l'animation.vrai 😉 dans le code, on a == mais sa n'a toujours pas aider
OriginalL'auteur Fabian Boulegue | 2015-02-10
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez utiliser le
completion
bloc à la fin de l'animation, vous devez utiliser les constructions avec ledelay
etoptions
arguments ainsi.Désolé, essayez de nouveau. J'ai édité le code.
merci fonctionne maintenant :)!
Content que vous l'avez travail! il est vraiment important de comprendre la
options: nil
bloc. Au lieu denil
vous pouvez utiliserUIViewAnimationOptions.CurveLinear
ouUIViewAnimationOptions.CurveEaseOut
. Ces paramètres modifient la façon dont l'animation se comporte. Si vous utilisez la dernière une de l'animation commencera rapidement et il va ralentir car l'animation est terminée.Ce que vous entendez par UIViewAnimationOptions.CurveLinear ou UIViewAnimationOptions.CurveEaseOut
OriginalL'auteur Cesare
Utiliser le
completion
sur le bloc de la fonction que vous appelez:Il ne devrait pas. Pris directement à partir de developer.apple.com/library/ios/documentation/UIKit/Reference/...:
OriginalL'auteur Ian MacDonald