Qualche motivo per utilizzare le tecniche di animazione UIView su animazioni di base?
-
07-07-2019 - |
Domanda
Sto lavorando su un'app Snow Leopard e sto realizzando alcune animazioni di vista (scambiandole) e ho visto alcuni esempi precedenti usando NSViewAnimation. Mi chiedo se questi sono completamente obsoleti da Core Animation?
Mi sembra abbastanza semplice da usare
[[myView animator] setFrame:newSwapFrame];
Ma mi chiedo solo se mi manca qualcosa o se NSViewAnimation è ancora rilevante (tranne che per la compatibilità con le versioni precedenti).
Soluzione
Generalmente dovresti passare a Core Animation per il codice 10.5+. NSViewAnimation
è abbastanza primitivo e non fa un uso efficiente dell'hardware. Non riesco a pensare a nessun vantaggio di stare con NSViewAnimation
diverso dalla compatibilità 10.4.
Altri suggerimenti
Ci sono alcuni casi in cui Core Animation non è adatto. Ad esempio, non è possibile inserire una visualizzazione Web in una vista con supporto a livelli senza che accadano cose funky.
Inoltre, i campi di testo nelle viste supportate da livelli non usano l'anti-aliasing subpixel, che può essere un grosso problema.
Se non si utilizzano viste supportate da livelli, l'esempio del solo utilizzo del supporto delle proprietà animabili è decisamente più semplice rispetto all'utilizzo di NSAnimation.
Se è necessario ottenere uno screenshot della finestra in un secondo momento (come esempio, per creare un'animazione di transizione tra due stati della finestra), le viste Animated Core (vista con CAAnimation
) potrebbero non essere state acquisite.
Ma CAAnimation
funziona sempre velocemente e NSAnimation
potrebbe rallentare se la CPU è troppo occupata.