2010-04-18 6 views
14

Je voudrais utiliser le UIView "sucer" la transition (la vue est "aspiré" dans un point) ici référencé:UIView "sucer" l'animation

http://iphonedevwiki.net/index.php/UIViewAnimationState#Using_suckEffect

Cependant, la méthode ci-dessus, utilise privé API, ce qui le rend inutilisable pour une application App Store. Comment puis-je recréer un effet similaire sans faire appel à des API privées? Je suppose que la réponse a à voir avec OpenGL, même si je n'ai aucune expérience là-bas.

+3

Bonne question (je n'ai pas de réponse) mais ce sera un jour génial quand des graphistes malins ou gals sortiront une bibliothèque avec des effets de haute qualité de suck/genie et de curling de pages. Jusque-là, je crois que les gens préparent en grande partie leurs propres pseudo-versions (inférieures). OK, donc je n'ai pas de réponse, mais vous aurez probablement besoin de traiter le rendu d'une texture sur une géométrie dans openGL et d'animer la déformation. –

+0

duplicata possible de http://stackoverflow.com/questions/428110/how-can-i-replicate-the-trashing-animation-of-mail-app – kennytm

+1

@quixoto: Oui, c'est le chemin que j'avais prévu de descendre , bien que je ne sache toujours pas dans quelle direction me diriger. @KennyTM: Ma question diffère légèrement en ce sens que je ne veux pas utiliser d'API privées. Est-ce encore un doublon? – igul222

Répondre

-3

avez-vous coché le cadre cocos2d. c'est un wrapper objectif c pour openGL et c'est très bien fait. vous pouvez consulter leur vidéo de démonstration qui montre tous les types de transition que la bibliothèque prend en charge.

7

Tant qu'Apple ne documente pas publiquement l'effet, et que vous voulez éviter le risque d'être rejeté pour avoir utilisé des API privées, vous devrez utiliser les vôtres.

Une suggestion pour commencer à travailler sur ce serait l'utilisation de shaders OpenGL ES.

Le billet de blog suivant comprend un patch Quartz Composer de démonstration pour créer l'effet Genie comme vu dans OS X et iOS: http://www.aderstedtsoftware.com/users/erik/weblog/c7cb9/

Un bon début pour votre shaders OpenGL ES serait d'utiliser le code dans le Genie Filtrer dans ce fichier QuartzComposer. Le code peut presque être copié dans un shader pour OpenGL tel quel. Le plus de travail serait probablement d'intégrer OpenGL dans votre application: rendre la bonne vue à une texture OpenGL et superposer OpenGL sur votre application pour effectuer l'animation en fonction de votre shader.

+0

Les liens semblent être morts – SwiftsNamesake

3

S'il vous plaît jeter un oeil à mon projet à git: //github.com/rmd6502/Genie.git - c'est très lent en ce moment, mais des améliorations sont à venir.

+2

[Ici] (https: // github.com/Ciechan/BCGenieEffect # bcgenieeffect) est quelque chose de similaire ... mais fonctionne plus vite – janisz