4 votes

Application de la même perspective et de la même rotation à tous les éléments de la couche CAL (contrairement à Coverflow)

J'essaie de simuler l'aspect des CD dans une étagère. Chaque CD doit être visible d'un certain angle, un peu comme les livres sur une étagère. J'utilise les transformations de l'animation de base. Le problème est que le résultat ressemble à Coverflow, c'est-à-dire que les éléments ont un aspect différent selon leur position sur l'écran.

Voici une capture d'écran de ce à quoi il ressemble réellement et de ce à quoi je veux qu'il ressemble :

what it looks like and what it is supposed to look like

J'ai utilisé CALayers et appliqué deux transformations de base :

1) Pour tourner :

CATransform3DMakeRotation(DegreesToRadians(60), 0, 1, 0);

2) Ajouter la perspective :

CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = -1.0/400;
self.layer.sublayerTransform = perspective;

Comment puis-je appliquer la même transformation à tous les calques et faire en sorte qu'ils se ressemblent tous ? Core Animation est-il l'outil adéquat ?

Merci, Mark.

6voto

Pivot Points 2858

Essayez d'inclure la transformation de la perspective dans les éléments individuels. transform plutôt que dans la couche parentale sublayerTransform :

CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = -1.0/400;
CATransform3D transform = CATransform3DRotate(perspective, DegreesToRadians(60), 0, 1, 0);
element.layer.transform = transform;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X