Sommaire

Animation de la transformation

Afin de déplacer, faire tourner ou donner un effet d’échelle à une vue sans changer la position des éléments qui se trouvent autour, on peut animer les changements de sa propriété transform.

Par exemple, si l’on souhaite effectuer une rotation d’un quart de tour d’un bouton boutonTapMe, tout en augmentant son échelle de 20 %, on peut lui appliquer la transformation suivante :

let transformActuelle = boutonTapMe.transform 
let nouvelleTransform = transformActuelle 
                            .scaledBy(x: 1.2, y: 1.2) 
                            .rotated(by: .pi/2) 
boutonTapMe.transform = nouvelleTransform

Ici, on récupère la valeur actuelle de boutonTapMe.transform qui peut déjà comporter des modifications, on crée une variable nouvelleTransform à laquelle on assigne une version de transformActuelle à laquelle on a appliqué une échelle de 1.2 en x et en y ainsi qu’une rotation de π/2.

Ce code peut être tout simplement inclus dans un bloc d’animation pour animer la transformation :

UIView.animate(withDuration: 0.3) { 
    let transformActuelle = self.boutonTapMe.transform

    let nouvelleTransform = transformActuelle 
                       ...