Animations implicites et explicites
Utiliser le modificateur .animation() ou le bloc withAnimation {} selon les besoins.
Animations implicites et explicites est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 styles d’animation
SwiftUI prend en charge les animations implicites (le modificateur .animation) et les animations explicites (la fermeture withAnimation).
struct Demo: View {
@State private var scale = 1.0
var body: some View {
Circle().scaleEffect(scale)
}
}Animation implicite avec .animation
Associer .animation(_:value:) à une vue l’anime chaque fois que la valeur liée change.
Circle()
.scaleEffect(scale)
.animation(.easeInOut(duration: 0.3), value: scale)Déclencher une animation implicite
Tout changement d’état qui affecte la vue déclenche automatiquement l’animation implicite qui lui est définie.
Button("Grow") {
scale = 2.0 // .animation fires automatically
}Animation explicite avec withAnimation
withAnimation encapsule une mutation d’état et anime simultanément toutes les modifications de vue qui en résultent.
Button("Animate") {
withAnimation(.spring()) {
scale = 2.0
offset = 50
}
}Animer plusieurs propriétés
withAnimation est préférable lorsque vous souhaitez animer plusieurs changements d’état de manière synchronisée, au sein d’une seule transaction.
withAnimation(.easeOut(duration: 0.5)) {
isExpanded = true
rotation = 90
opacity = 0.5
}Types d’animation
Swift fournit les animations spring, easeIn, easeOut, easeInOut, linear et les animations à courbe temporelle personnalisée.
.spring(response: 0.4, dampingFraction: 0.6)
.easeInOut(duration: 0.3)
.linear(duration: 0.5)
.timingCurve(0.2, 0.8, 0.2, 1.0, duration: 0.4)Désactiver l’animation
Passez .animation(.none, value:) ou encapsulez les mutations dans withAnimation(nil) pour désactiver sélectivement l’animation.
Circle()
.scaleEffect(scale)
.animation(.none, value: scale) // no animationPriorité des animations
L’animation explicite withAnimation est prioritaire sur les modificateurs .animation implicites des vues enfants.
withAnimation(.linear) {
value = true // linear wins over any .animation on subviews
}Animations répétées
Utilisez .repeatForever ou .repeatCount pour créer des animations en boucle, comme des effets de pulsation.
.animation(
.easeInOut(duration: 0.8).repeatForever(autoreverses: true),
value: pulsing
)Délai et vitesse
Composez les animations avec les modificateurs .delay et .speed appliqués à la valeur d’animation.
.animation(.spring().delay(0.2).speed(1.5), value: flag)Choisir entre animation implicite et explicite
Utilisez l’animation implicite pour les animations d’une seule vue liées à une valeur : utilisez l’animation explicite lorsque vous coordonnez plusieurs propriétés ou vues.
// Implicit: simple, single view
.animation(.easeIn, value: isVisible)
// Explicit: multi-property or cross-view
withAnimation { a = 1; b = 2 }Vérification rapide
Quelle approche coordonne le mieux l’animation simultanée de plusieurs propriétés d’état ?
Récapitulatif de la leçon
Les animations implicites (.animation(_:value:)) réagissent automatiquement aux changements de valeur sur une vue unique. Les animations explicites (withAnimation {}) coordonnent plusieurs mutations. Combinez-les avec .delay, .speed et .repeatForever pour créer des effets complexes.
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 » ?
Utiliser le modificateur .animation() ou le bloc withAnimation {} selon les besoins. 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 1 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
- Animations implicites et explicites
- matchedGeometryEffect pour les transitions héroïques
- AnimatableModifier et Animatable personnalisés
- TimelineView et Canvas pour un dessin haute performance