2009-06-19 16 views
11

L'iPhone ha una lista privata di effetti che Apple utilizza, come "genieEffect" e "slurpEffect". Mi chiedo come si dovrebbe implementare l'effetto slurp (questo è quando si trascrive un messaggio di posta o una nota).Come implementare l'effetto slurp su iPhone?

Capisco come usare Core Animation, ma non sono sicuro di quali parti stanno usando per ottenere quell'animazione.

+0

In particolare, sto cercando come simulare l'effetto da solo (o qualcosa di simile), piuttosto che utilizzare l'API privata (che verrà respinta la mia app). – Itay

risposta

1

Questo post parla utilizzando l'API private per l'effetto: link text

+0

Capisco come ottenere l'effetto utilizzando l'API privata, ma non è quello che cerco, poiché preferirei che la mia app non venisse rifiutata :) In particolare, sto cercando come simulare l'effetto da solo (o qualcosa di simile). – Itay

+0

Tecnicamente ... questa è un'API non documentata, non un'API privata? Sembra che tu stia ancora utilizzando le chiamate di funzione disponibili pubblicamente. Penso che questo sia probabilmente sicuro da usare, ma mi piacerebbe buttare una bandiera in modo da poter tornare ad un effetto zoppo se non sono d'accordo. –

+1

Mi piacerebbe credere che tu abbia ragione, ma la mia intuizione mi sta dicendo il contrario. Probabilmente finirò per avere una transizione diversa, a meno che qualcuno non abbia qualche idea su come implementarlo. – Itay

1

sembra essere una combinazione complessa di trasformazioni 2D e 3D. : - \ Dovresti veramente approfondire CoreAnimation per simulare questo effetto.

1

Lo farei con una trasformazione affine applicata al livello della vista. L'algebra lineare non è il mio punto di forza;) quindi non posso specificare la trasformazione esatta, ma la mia ipotesi sarebbe qualcosa di simile per l'animazione:

  • Impostare l'alfa a svanire a 0.0 o qualcosa di simile a 0
  • Applicare una trasformazione per schiacciare i due angoli inferiori vicino al centro
  • Scala verso il basso la vista molto piccolo
  • mossa centro del livello fino al fondo dello schermo (o dove si desidera che Génie a.

Questo è più o meno come penso che funzionerebbe. Potrebbe essere necessario animare queste cose in momenti diversi o, tutto in un blocco, non ne sono del tutto sicuro.

Dai un'occhiata alla documentazione di CALayer, CABasicAnimation e CGAffineTransform.

Problemi correlati