4

我正在尝试模拟架子中 CD 的外观。当您看书架时,每张 CD 都应该从一个非常类似于书籍的角度可见。我使用核心动画转换。问题是结果看起来像 Coverflow,即元素看起来会根据它们在屏幕上的位置而有所不同。

这是它的实际外观以及我希望它看起来像的屏幕截图:

它看起来像什么,它应该是什么样子

我使用了 CALayers 并应用了两个基本的转换:

1) 旋转:

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

2)添加视角:

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

如何将相同的转换应用于所有图层并让它们看起来都一样?Core Animation 是适合这项工作的工具吗?

谢谢,马克。

4

1 回答 1

6

尝试在单个元素中包含透视变换transform,而不是在父层中sublayerTransform

CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = -1.0/400;
CATransform3D transform = CATransform3DRotate(perspective, DegreesToRadians(60), 0, 1, 0);
element.layer.transform = transform;
于 2011-02-15T06:11:33.383 回答