2009-09-28 18 views
9

Sto provando a creare un'animazione "pagina arricciata" di un'immagine nella mia applicazione iPhone. I t UIViewAnimationTransitionCurlUp e sono i fratelli Animazione Core non documentati, tuttavia l'immagine che devo animare è un PNG trasparente, con contorni "non uniformi" (alcuni pixel alfa). Quando si utilizza la transizione preimpostata sopra menzionata, quei pixel alfa sono dipinti di nero non appena inizia l'animazione, che sembra terribilmente brutta.Come posso creare un'animazione core per la pagina personalizzata?

Pertanto, cerco di creare un'animazione core di mio. Ho provato a ricercare l'argomento, ma non sono riuscito a trovare una buona panoramica delle tecniche coinvolte. L'implementazione dovrebbe ovviamente essere più complessa di un singolo cambiamento di proprietà, ho la sensazione che anche CATransform3D sarebbe limitato a questo scopo, poiché l'immagine deve avere diverse trasformazioni 3D applicate in diverse parti di esso - cambiando nel tempo . Come procederebbe allora su questo argomento? Sono molto grato per qualsiasi pensiero o idea!

migliore, Eli

+1

Core Animation è un'astrazione di OpenGL. Quindi le transizioni sono in realtà manipolazioni OpenGL dei livelli. Non sono sicuro se esiste un modo per definire un'animazione personalizzata in OpenGL e quindi utilizzarla nel framework CoreAnimation. Questo è quello che cercherò prima di vedere se possibile. –

+0

Hai mai trovato una buona soluzione per questo? –

+0

alku83, non proprio .. Finito per sovrapporre lo schermo con un UIImageView animato. – eliego

risposta

6

Come sottolinea Corey, probabilmente sarà necessario utilizzare OpenGL ES per questo. Core Animation espone la capacità di lavorare con i livelli, even in 3-D, ma tutti i livelli sono solo rettangoli e vengono manipolati come tali. È possibile animate the flipping of a layer about an axis, anche with a perspective distortion, ma il tipo di curvatura che si desidera eseguire è più complesso di quello che è possibile gestire utilizzando le API di Animazione di base.

Potresti riuscire a dividere l'immagine in una rete di minuscoli livelli e manipolarne ciascuna utilizzando un CATransform3D per creare questo effetto curvante, ma a quel punto potresti anche utilizzare OpenGL ES per creare lo stesso effetto.

0

Il libro Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces da Pragmatic Programmer può aiutare a scrivere le animazioni Core Animation personalizzato.

+4

In questo caso, non sarà di aiuto. Il libro Core Animation funge da grande introduzione alla tecnologia e descrive cosa è possibile fare con i vari tipi di livelli e animazioni fornite dal framework, ma si ferma a prescindere dal tipo di personalizzazione estrema di cui ha bisogno. –

Problemi correlati