J'ai un UILabel
que j'essaye de mettre à l'échelle et de traduire, et je veux animer ceci. Je fais ceci en mettant son transform
dans un bloc UIView.animate
. Lorsque l'animation est terminée, je voudrais redéfinir le transform
de la vue sur .identity
et mettre à jour son cadre afin qu'il reste exactement là où le CGAffineTransform
l'a déplacé. Pseudocode:Comment animer la mise à l'échelle et déplacer un UILabel, puis remettre sa transformation à l'identité lorsque vous avez terminé et conserver son cadre?
func animateMovement(label: UILabel,
newWidth: CGFloat,
newHeight: CGFloat,
newOriginX: CGFloat,
newOriginY: CGFloat)
{
UIView.animate(withDuration: duration, animations: {
label.transform = ??? // Something that moves it to the new location and new size
}) {
label.frame = ??? // The final frame from the above animation
label.transform = CGAffineTransform.identity
}
}
Quant à savoir pourquoi je ne cède pas simplement le nouveau cadre dans le bloc d'animation: J'ai du texte dans l'étiquette que je veux à l'échelle de l'animation, ce qui est impossible lors de l'animation de changer le cadre au lieu de la transformation.
Je rencontre des problèmes d'espace de coordonnées, ce que je peux dire parce que, après l'animation, il n'est pas dans l'emplacement correct (l'étiquette n'a pas la bonne origine).
bon travail !; félicitations –