Animations implicites et explicites
Animez les propriétés des calques avec CABasicAnimation.
Animations implicites et explicites est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Deux façons d’animer les couches
Core Animation propose des animations implicites, automatiques lors de la modification d’une propriété, et des animations explicites, pour lesquelles vous créez un objet d’animation.
Connaître ces deux approches et savoir comment elles interagissent est essentiel pour obtenir des mouvements fluides.
Animations implicites
Modifier une propriété animable d’un layer autonome déclenche une animation implicite utilisant une courbe par défaut de 0,25 s, sans nécessiter d’objet d’animation.
let layer = CALayer()
// Later, this animates automatically:
layer.opacity = 0.0Propriétés animables
De nombreuses propriétés de couche sont animables : opacity, position, bounds, backgroundColor, transform, cornerRadius, et bien d’autres.
layer.cornerRadius = 20 // animates implicitly
layer.backgroundColor = UIColor.systemGreen.cgColorActions et mécanisme des actions
Les animations implicites sont pilotées par des actions. Lorsqu’une propriété change, le layer recherche une CAAction à exécuter. Vous pouvez personnaliser ou désactiver ces actions.
Les couches rattachées aux vues désactivent l’implicite
Les couches rattachées à une UIView ont leurs animations implicites désactivées. Animez-les plutôt avec UIView.animate ou au moyen d’animations explicites.
UIView.animate(withDuration: 0.3) {
view.alpha = 0
}CABasicAnimation
CABasicAnimation anime une propriété entre une valeur fromValue et une valeur toValue. Ajoutez-la au layer avec un chemin de clé correspondant à la propriété.
let anim = CABasicAnimation(keyPath: "opacity")
anim.fromValue = 1.0
anim.toValue = 0.0
anim.duration = 0.5
layer.add(anim, forKey: "fade")Présentation et modèle
Une animation explicite ne modifie que les valeurs de présentation, celles affichées à l’écran ; la valeur du modèle du layer revient à son état initial lorsque l’animation se termine.
Pour conserver la modification, définissez également la valeur du modèle.
layer.opacity = 0.0 // set model value so it persists
layer.add(anim, forKey: "fade")Animations par images clés
CAKeyframeAnimation anime plusieurs values au fil de keyTimes, ou le long d’un path, ce qui convient parfaitement aux rebonds et aux déplacements sur des courbes.
let move = CAKeyframeAnimation(keyPath: "position")
move.values = [
NSValue(cgPoint: CGPoint(x: 0, y: 0)),
NSValue(cgPoint: CGPoint(x: 100, y: 0)),
NSValue(cgPoint: CGPoint(x: 100, y: 100))
]
move.duration = 1.0
layer.add(move, forKey: "path")Fonctions de temporisation
Contrôlez l’accélération avec timingFunction : accélération progressive, ralentissement progressif, vitesse linéaire ou courbe de Bézier cubique personnalisée.
anim.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)Regroupements et transactions
Regroupez plusieurs modifications dans une CATransaction pour leur faire partager une durée et une temporisation, ou pour désactiver complètement les animations implicites.
CATransaction.begin()
CATransaction.setDisableActions(true)
layer.position = CGPoint(x: 200, y: 200)
CATransaction.commit()Délégués d’animation et fin d’exécution
Définissez CATransaction.setCompletionBlock ou un délégué d’animation pour exécuter du code lorsque le mouvement se termine : nettoyage, enchaînement ou mise à jour de l’état.
CATransaction.begin()
CATransaction.setCompletionBlock { print("done") }
layer.add(anim, forKey: "fade")
CATransaction.commit()Vérification rapide : animations
Vérifiez votre compréhension des animations implicites et explicites.
Récapitulatif : animations implicites et explicites
Les couches autonomes s’animent implicitement par l’intermédiaire d’actions lorsque leurs propriétés animables changent ; les couches rattachées aux vues désactivent ce mécanisme et utilisent UIView.animate. Les animations explicites CABasicAnimation et CAKeyframeAnimation animent la valeur de présentation : mettez donc à jour la valeur du modèle pour conserver les résultats.
Ajustez le mouvement avec les fonctions de temporisation, regroupez les modifications dans une CATransaction et utilisez les blocs de fin d’exécution pour les opérations suivantes.
Questions Fréquemment Posées
La leçon « Animations implicites et explicites » est-elle gratuite ?
Oui — le texte complet de « Animations implicites et explicites » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Animations implicites et explicites » ?
Animez les propriétés des calques avec CABasicAnimation. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Animations implicites et explicites » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux de CALayer
- Animations implicites et explicites
- Transformations et effets 3D
- Dessin personnalisé avec Core Graphics