Domanda

sto lottando con le animazioni concettualizzare con un CALayer a differenza di propri metodi di animazione di UIView. Buttare " Core Animation " in questo e, beh, forse qualcuno può articolare questi concetti da un livello alto in modo da poter visualizzare meglio ciò che sta accadendo e perché avrei voluto migrare animazioni UIView (che sono una certa familiarità con la società) per le animazioni CALayer su iPhone. Ogni vista in Cocoa Touch ottiene automaticamente un livello. E, a quanto pare, è possibile animare un e / o l'altro?!? Anche mescolarli insieme?!? Ma perché? Dov'è il limite? Qual è il pro / con a ciascuno?

La Guida Core Animation programmazione salta subito in Classi di livello e temporizzazione e penso che hanno bisogno di fare un passo indietro e capire il motivo per cui esistono questi pezzi vari e come relazionarsi gli uni agli altri.

È stato utile?

Soluzione

Con viste per il controllo e strati per piacere per gli occhi. Livelli non ricevono gli eventi in modo che sia più facile da usare la vista per quei casi, ma quando si vuole animare uno sprite o sfondi, ecc, i livelli hanno senso. Eventi passare proprio attraverso gli strati alla vista supporto in modo da poter avere una rappresentazione visiva abbastanza senza dover mettere i vostri eventi. Provate a sovrapporre una visione che si sta solo usando per la rappresentazione visiva e dovrete passare attraverso eventi toccare alla vista di fondo da soli.

Altri suggerimenti

Un UIView è sempre reso ad un CALayer. Quando si utilizzano i metodi UIView per animare una vista, si sta effettivamente manipolare il CALayer sottostante.

Se avete bisogno di fare le cose semplici, utilizzare i metodi UIView. Per situatins più complessi, o se volete i livelli non associato a qualsiasi vista, in particolare, l'uso CALayers.

Ho fatto un sacco di applicazioni nel corso dell'anno passato. Ecco la mia regola empirica:

  1. Usa UIView fino a che non fa quello che si vuole.
  2. Quindi spostare a Core Animation. Ma prima di arrivare in esso troppo ...
  3. Se si scrive più di un paio di animazioni, utilizzare Cocos2d.

trasforma UIView sono solo 2D e sono limitate a ciò, Layer trasforma tuttavia può essere in 3D e si dovrebbe usare quelli se si vuole fare cose 3D, l'animazione UIView funziona se si cambia o l'UIView trasformare o CALayer trasformare. Quindi, a un livello di base, si può fare molto di più di manipolazione quando si lavora con uno strato piuttosto che la vista.

Non sono sicuro se sto equivoco risposta Chris' a 'Che cosa sta Cocos2d facendo meglio? Non hai altri problemi, allora, per quanto riguarda il tocco gestione degli eventi e molte altre cose che manca in OpenGL ES?'

Sembra che la risposta suggerisce Cocos2d non si basa sul quadro OpenGL ES quando in realtà reale è. Anche se è un grande motore di gioco 2D esso implementa OpenGL per gran parte di esso è il rendering - collegato a una libreria fisica permette per un sacco di possibilità molto interessanti per l'animazione - e Chris è corretta - è molto meno di codifica in effetti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top