0Pricing
Swift Academy · Lezione

Animazioni implicite ed esplicite

Utilizzare il modifier .animation() o il blocco withAnimation {} nei diversi casi d’uso.

Animazioni implicite ed esplicite è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Due stili di animazione

SwiftUI supporta le animazioni implicite, tramite il modifier .animation, e le animazioni esplicite, tramite la closure withAnimation.

struct Demo: View {
  @State private var scale = 1.0
  var body: some View {
    Circle().scaleEffect(scale)
  }
}

Animazione implicita con .animation

Associare .animation(_:value:) a una view la anima ogni volta che cambia il valore associato.

Circle()
  .scaleEffect(scale)
  .animation(.easeInOut(duration: 0.3), value: scale)

Attivare un'animazione implicita

Qualsiasi modifica allo stato che influisce sulla view attiva automaticamente l'animazione implicita definita su di essa.

Button("Grow") {
  scale = 2.0  // .animation fires automatically
}

Animazione esplicita con withAnimation

withAnimation racchiude una mutazione dello stato e anima simultaneamente tutte le modifiche risultanti alla view.

Button("Animate") {
  withAnimation(.spring()) {
    scale = 2.0
    offset = 50
  }
}

Animare più proprietà

withAnimation è preferibile quando desidera animare più modifiche dello stato in sincronia come un'unica transazione.

withAnimation(.easeOut(duration: 0.5)) {
  isExpanded = true
  rotation = 90
  opacity = 0.5
}

Tipi di animazione

Swift offre animazioni spring, easeIn, easeOut, easeInOut, linear e con curve temporali personalizzate.

.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)

Disabilitare l'animazione

Passi .animation(.none, value:) oppure racchiuda le mutazioni in withAnimation(nil) per disabilitare selettivamente l'animazione.

Circle()
  .scaleEffect(scale)
  .animation(.none, value: scale)  // no animation

Priorità delle animazioni

withAnimation esplicito ha la precedenza sui modifier .animation impliciti delle view figlie.

withAnimation(.linear) {
  value = true  // linear wins over any .animation on subviews
}

Animazioni ripetute

Usi .repeatForever o .repeatCount per creare animazioni cicliche, come gli effetti pulsanti.

.animation(
  .easeInOut(duration: 0.8).repeatForever(autoreverses: true),
  value: pulsing
)

Ritardo e velocità

Combini le animazioni con i modifier .delay e .speed sul valore dell'animazione.

.animation(.spring().delay(0.2).speed(1.5), value: flag)

Scegliere tra animazioni implicite ed esplicite

Usi le animazioni implicite per animazioni di una singola view legate a un valore; usi quelle esplicite per coordinare più proprietà o view.

// Implicit: simple, single view
.animation(.easeIn, value: isVisible)
// Explicit: multi-property or cross-view
withAnimation { a = 1; b = 2 }

Verifica rapida

Quale approccio coordina al meglio l'animazione simultanea di più proprietà dello stato?

Riepilogo della lezione

Le animazioni implicite (.animation(_:value:)) reagiscono automaticamente alle variazioni di valore su una singola vista. Le animazioni esplicite (withAnimation {}) coordinano più modifiche. Le combini con .delay, .speed e .repeatForever per creare effetti complessi.

Domande Frequenti

La lezione «Animazioni implicite ed esplicite» è gratuita?

Sì — il testo completo di «Animazioni implicite ed esplicite» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Animazioni implicite ed esplicite»?

Utilizzare il modifier .animation() o il blocco withAnimation {} nei diversi casi d’uso. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Animazioni implicite ed esplicite»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Animazioni implicite ed esplicite
  2. matchedGeometryEffect per transizioni hero
  3. AnimatableModifier e Animatable personalizzati
  4. TimelineView e Canvas per il disegno ad alte prestazioni
← Torna a Swift Academy