我的任务非常简单,但我无法理解CATransform3DRotate。 我有3个UIImageView具有相同的高度和宽度,我需要为左侧和右侧项目设置一些转换以获得下一个结果: https://dl.dropboxusercontent.com/u/15196617/result.png
原始屏幕: https://dl.dropboxusercontent.com/u/15196617/original.png
我的消息来源:
CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1.f / self.prevItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) -(M_PI / 3.f), 0, 1.f, 0);
self.prevItemImageView.layer.anchorPoint = CGPointMake(1.f, 0.5f);
self.prevItemImageView.layer.transform = transform;
transform = CATransform3DIdentity;
transform.m34 = -1.f / self.nextItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) (M_PI / 3.f), 0, 0.5f, 0);
self.nextItemImageView.layer.anchorPoint = CGPointMake(0.f, 0.5f);
self.nextItemImageView.layer.transform = transform;
这不起作用。
答案 0 :(得分:3)
您要做的是将带有已更改.m34
组件的转换应用于图像视图的超级层,作为sublayerTransform
。这就是为图像视图提供变换的深度外观。
这张照片以广场的形式开始。但它看起来在3D中旋转,因为它的超级层有一个sublayerTransform
:
答案 1 :(得分:0)
我为这种类型的动画找到了一个解决方案。请查看此链接
https://github.com/GlennChiu/GC3DFlipTransitionStyleSegue
我们可以使用Pods添加..
如果有效,请接受答案。