Animazioni implicite ed esplicite
Animi le proprietà dei layer con CABasicAnimation.
Animazioni implicite ed esplicite è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 2 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 modi per animare i layer
Core Animation offre animazioni implicite, automatiche quando cambia una proprietà, e animazioni esplicite, per le quali si crea un oggetto animazione.
Conoscere entrambi i tipi e il modo in cui interagiscono è fondamentale per ottenere movimenti fluidi.
Animazioni implicite
La modifica di una proprietà animatable di un layer indipendente attiva un’animazione implicita con una curva predefinita di 0.25s, senza richiedere alcun oggetto animazione.
let layer = CALayer()
// Later, this animates automatically:
layer.opacity = 0.0Proprietà animabili
Molte proprietà dei layer sono animabili: opacity, position, bounds, backgroundColor, transform, cornerRadius e altre.
layer.cornerRadius = 20 // animates implicitly
layer.backgroundColor = UIColor.systemGreen.cgColorAzioni e meccanismo delle azioni
Le animazioni implicite sono gestite dalle azioni. Quando cambia una proprietà, il layer cerca una CAAction da eseguire. Può personalizzare o disabilitare queste azioni.
I layer associati alle viste disabilitano le animazioni implicite
I layer associati a una UIView hanno le animazioni implicite disattivate. Li anima tramite UIView.animate oppure usando animazioni esplicite.
UIView.animate(withDuration: 0.3) {
view.alpha = 0
}CABasicAnimation
CABasicAnimation anima una proprietà tra un fromValue e un toValue. La aggiunga al layer usando un key path corrispondente alla proprietà.
let anim = CABasicAnimation(keyPath: "opacity")
anim.fromValue = 1.0
anim.toValue = 0.0
anim.duration = 0.5
layer.add(anim, forKey: "fade")Presentation e model
Un’animazione esplicita modifica solo i valori di presentation, ovvero quelli visualizzati sullo schermo; il valore model del layer torna al valore precedente al termine dell’animazione.
Per rendere permanente la modifica, imposti anche il valore model.
layer.opacity = 0.0 // set model value so it persists
layer.add(anim, forKey: "fade")Animazioni keyframe
CAKeyframeAnimation anima più values attraverso keyTimes oppure lungo un path, ed è ideale per rimbalzi o movimenti lungo curve.
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")Funzioni temporali
Controlli l’accelerazione con timingFunction: ease-in, ease-out, lineare o una curva di Bezier cubica personalizzata.
anim.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)Raggruppamenti e transazioni
Racchiuda più modifiche in una CATransaction per condividere durata e temporizzazione oppure per disabilitare completamente le animazioni implicite.
CATransaction.begin()
CATransaction.setDisableActions(true)
layer.position = CGPoint(x: 200, y: 200)
CATransaction.commit()Delegati delle animazioni e completamento
Imposti CATransaction.setCompletionBlock o un delegato dell’animazione per eseguire codice al termine del movimento, ad esempio per operazioni di pulizia, concatenamento o aggiornamento dello stato.
CATransaction.begin()
CATransaction.setCompletionBlock { print("done") }
layer.add(anim, forKey: "fade")
CATransaction.commit()Verifica rapida: animazioni
Verifichi la sua comprensione delle animazioni implicite ed esplicite.
Riepilogo: animazioni implicite ed esplicite
I layer indipendenti si animano implicitamente tramite azioni quando cambiano proprietà animabili; i layer associati alle viste disabilitano questo comportamento e usano UIView.animate. Le animazioni esplicite CABasicAnimation e CAKeyframeAnimation animano il valore presentation, quindi aggiorni il valore model per mantenere il risultato.
Regoli il movimento con le funzioni temporali, raggruppi le modifiche in una CATransaction e usi i blocchi di completamento per le operazioni successive.
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»?
Animi le proprietà dei layer con CABasicAnimation. 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 2 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
- Fondamenti di CALayer
- Animazioni implicite ed esplicite
- Trasformazioni ed effetti 3D
- Disegno personalizzato con Core Graphics