2 votes

Comment animer correctement la mise à l'échelle d'un UITextView ?

J'ai un UITextView et je veux le mettre à l'échelle de haut en bas avec l'animation, j'ai essayé de le mettre à l'échelle comme les autres UIView comme ceci :

self.textView.widthConstraint.constant = newWidth

UIView.animate(withDuration: 0.4, animations: {

        self.view.layoutIfNeeded()

}, completion: nil)

L'animation est un peu bizarre : le texte dans la vue texte est toujours de la même taille du début à la fin de l'animation, mais avec la mise à l'échelle du conteneur, le texte va simplement de droite à gauche.

Quelle est la bonne façon de mettre à l'échelle un UITextView ainsi que le texte qu'il contient ?

3voto

Bilal Points 10422

Si vous voulez simplement animer le UITextView l'échelonnement, je pense qu'il serait préférable d'utiliser CGAffineTransform . Vous pouvez le faire comme ceci...

UIView.animate(withDuration: 0.4, animations: {
    self.textView.transform = self.textView.transform.scaledBy(x: 0.2, y: 0.2)
})

0voto

D4ttatraya Points 2271

Essayez ça :

self.textView.widthConstraint.constant = newWidth
UIView.animate(withDuration: 0.4, animations: {
    self.textView.layoutIfNeeded()
})

Mise à jour

Según cette réponse SO post vous devez utiliser Affine Transform :

Le facteur d'échelle de la transformation affine est appliqué au texte comme à toute autre chose. La taille du texte à l'écran doit donc correspondre à la taille nominale du texte multipliée par le facteur d'échelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X