Domanda

Sono nuovo nello sviluppo di iPhone e attualmente sto giocando con la ricostruzione di uno strumento di creazione di grafici che ho sviluppato per Silverlight.

Attualmente sto usando un gradiente per 'riempire' un rettangolo che rappresenta una barra all'interno di un grafico. È possibile animare questo gradiente in modo che cambi colore quando un utente tocca la barra all'interno del grafico.

Ho consultato le guide di Core Animation fornite da Apple ma non riesco a vedere una proprietà che abbia come target i gradienti. Suppongo che potrei usare una transizione per sfumare tra due rect, uno dei quali ha il mio gradiente iniziale e il secondo con la versione 'toccata', ma ciò significherebbe ovviamente disegnare più oggetti rettilinei per ogni barra con presumo spese extra extra.

Qualche idea?

È stato utile?

Soluzione

Sì, in effetti puoi animare i gradienti con Core Animation.

La classe CAGradientLayer che è stata pubblicata in 3.0 ha una bella API per il rendering dei gradienti in un livello e per l'animazione dei cambiamenti di colore e color-stop.

Ho pubblicato un post su questa classe un po 'di tempo indietro, insieme ad alcuni codici di esempio collegati in basso.

Nell'esempio animo il gradiente creando un CABasicAnimation, ma puoi anche animare implicitamente il cambiamento, semplicemente passando un nuovo array di colori alla proprietà colors del livello gradiente. Usa animazioni implicite a meno che tu non abbia un motivo per non farlo.

Dai un'occhiata e fammi sapere se hai domande specifiche sull'interfaccia utente che stai cercando di animare.

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