2009-12-31 9 views
1

Je voudrais créer un compteur défilant et je me demande comment l'implémenter. Dois-je utiliser pour chaque chiffre une vue séparée et animer la vue vers le haut ou vers le bas pour créer l'effet de défilement?Créer un compteur à défilement

Ou y a-t-il une meilleure façon de faire cela?
alt text

Répondre

1

Vous pouvez créer une bande verticale de chiffres de 0 à 9, puis animer la modification de l'origine du cadre de la bande. Pour obtenir un effet "homogène", "coller" trois bandes verticales et animer en changeant leurs origines.

Si votre compteur augmente et que l'animation fait bouger la bande la plus basse hors des limites, ajoutez une autre bande au sommet - et inversement, si le compteur diminue.

+0

Vous pouvez ensuite obtenir le bel effet 3D en superposant un calque translucide statique avec des dégradés foncés en haut et en bas et un dégradé de "brillance" vers le haut. Si vous séparez les éléments d'un UIPickerView, je pense que c'est ce qu'il fait. –

+0

Oui. Il suffit de lancer une couche ou deux pour masquer les chiffres. Il serait idéal de penser aux cas de portrait et de paysage. –

+0

Cela me semble être la méthode la plus appropriée, mais pouvez-vous expliquer comment empêcher l'affichage des vues hors limites? J'ai essayé de créer une vue rectangulaire pour le compteur et ajouté chaque bande comme une sous-vue, mais apparemment les bandes continuent d'apparaître pleinement à la place comme je ne m'attendrais à la partie qui est dans les limites de la forme rectangulaire? – Oysio

1

Comme il n'y a que 10 transitions possibles, vous pouvez les pré-rendre et avoir une animation plus détaillée. Sinon, ce que vous avez décrit semble approprié. Je pensais juste que je le suggérerais.

0

Dois-je utiliser pour chaque chiffre une vue séparée et animer la vue vers le haut ou vers le bas pour créer le défilement effet?

Probablement votre meilleur pari. Au minimum, cette stratégie devrait vous permettre de gérer efficacement la complexité impliquée. La "direction" que vous animez est simplement une décision stylistique.

Questions connexes