2015-06-15 11 views
6

Ho uno stylekit in paintcode con un metodo di disegno stylekit che accetta un singolo parametro - esiste un modo in cui posso utilizzare UIView.animateWithDuration (ecc.) Per animare quel parametro in modo che la mia vista si aggiorni senza problemi?C'è un modo per animare le variabili Paintcode?

+0

Controlla ["Animazione proprietà layer personalizzate"] (http://www.objc.io/issues/12-animations/animating-custom-layer-properties/). –

risposta

6

Non animeraiWithDuration perché crea i fotogrammi chiave per te e questo è ciò che stai facendo con le variabili che passi nel metodo di disegno generato da PaintCode.

Dovrai implementare un UIView personalizzato. Creare una proprietà per la classe personalizzata che contiene il valore della variabile per il parametro accettato dal metodo di disegno. Sovrascrivi drawRect per chiamare il metodo di disegno StyleKit e passare la variabile locale che contiene il valore per la variabile.

Quindi si utilizzerà un NSTimer per iterare attraverso un valore nel tempo, aggiornando la proprietà di UIView personalizzata ad ogni iterazione. Il trucco è che quando la proprietà viene aggiornata devi chiamare self.setNeedsDisplay (swift) o (ogg-c).

C'è un grande post sul blog su di esso disponibile qui: https://medium.com/a-first-project-with-paintcode/animating-the-arrow-6e61104b321b

+0

Esiste un modo più efficiente per eseguire lo stesso compito? Il ridisegno della vista su un timer (in particolare un timer veloce) è molto costoso. (L'utilizzo della CPU è quasi del 50% sul mio 6S proprio per questo.) – Jake

+0

Sono d'accordo. C'è un modo per ottenere lo stesso, ma senza l'uso di un timer (come in: c'è un modo più efficiente)? –

+0

Sembra che tu stia reinventando ciò che Core Animation fa già. – wcochran

1

Paintcode ti dà 3 opzioni nella sezione dedicata alle FAQ:

  • animazione con UIView e NSTimer
  • animazione con l'abitudine di proprietà animatable di CALayer
  • Animazione con proprietà animabili personalizzate e delegato di CALayer

Alcuni di questi hanno prestazioni migliori rispetto agli altri e puoi scaricare un progetto di esempio (Swift e Objective-C) direttamente dal loro sito web.

Riferimento: https://www.paintcodeapp.com/faq/animate-drawings-made-paintcode

0

ho finito per usare il progetto PRTween per animare il mio progetto PaintCode. Puoi leggere su di esso here.

+0

PRTween link is broken. – Domsware

+0

Grazie per l'avviso, il collegamento è stato corretto. –

Problemi correlati