Animation à l'échelle et déplacer UIView (swift)
J'ai une UIView, placé au milieu de l'écran. Lorsque l'utilisateur appuie sur un bouton, je le veux pour déplacer vers le haut près du haut de l'écran comme il se rétrécit à environ un cinquième de sa taille.
J'ai essayé ceci:
UIView.animateWithDuration(0.7) { () -> Void in
self.main.transform = CGAffineTransformMakeScale(0.2, 0.2)
self.main.transform = CGAffineTransformMakeTranslation(0, -250)
}
Mais pour une raison quelconque, que seules les échelles de la vue. J'ai également essayé de mettre cela dans la animateWithDuration:
self.main.frame = CGRectMake(self.view.frame.width/2 - 10, 50, 50, 50)
Comment puis-je obtenir à la fois des animations de travail?
OriginalL'auteur Marcel | 2016-10-29
Vous devez vous connecter pour publier un commentaire.
De la réponse de Joe ci-dessus fait exactement ce que son GIF décrit, mais il n'a pas vraiment répondre à votre question, car il traduit puis échelles de la vue (par opposition à la traduction et de la mise à l'échelle en même temps). Votre problème est que vous êtes à la définition de la vue de transformer dans votre bloc d'animation, puis immédiatement overwritting de cette valeur avec une autre transformation. Pour atteindre à la fois la traduction et de l'échelle dans le même temps, vous voulez quelque chose comme ceci:
Vous devez calculer la différence entre votre destination x et y les coordonnées et les coordonnées de votre UIView de traduire votre UIView. Si vous souhaitez voir un exemple de code, n'hésitez pas à ouvrir une autre question, et me lier ici 🙂
OriginalL'auteur WongWray
Vous pouvez réaliser l'
UIView animation
de plusieurs façons dans Swift. Code ci-dessous est juste une approche simple...De sortie:
c'est l'idée de la poste de réduire la vue après l'animation. Lire le post de nouveau. Et laissez-moi savoir ce que vous souhaitez atteindre?
mais mon image ratio d'aspect est perdu après l'animation, la réduction n'est pas le problème, j'ai voulu que trop
cela pourrait être un problème différent...vérifiez vos contraintes?
Mon scénario est j'ai désactivé tous les constarint avant l'animation, a ajouté l'échelle et à la traduction dans le même temps. En fait j'ai besoin des deux en même temps " laissez originalTransform = auto.idImageView.transformer laisser scaledTransform = originalTransform.scaledBy(x: widthOfIDImage/displayWidth, y: heightOfIDImage/displayHeight) laissez scaledAndTranslatedTransform = scaledTransform.translatedBy(x: 200, y: -1000).idImageView.transformer = scaledAndTranslatedTransform
OriginalL'auteur Joe