我正在尝试在 X 轴上为 UIImageView 制作 3D 动画,以便它进行 180 度旋转。在 90 度我想改变图像。 (这就是为什么我在 2 中“破坏”了动画)。
动画效果很好,但问题是第二张图片是倒着画的。我应该怎么做才能正常绘制图像?
这是我的代码
i++;
[UIView animateWithDuration:2 animations:^{
self.imageView.layer.transform = CATransform3DMakeRotation(-M_PI/2 , 1, 0,0);
} completion:^(BOOL finished){
UIImage *bottomI = (UIImage *)[bottom objectAtIndex:i];
self.second.image =bottomI;
[UIView animateWithDuration:2 animations:^{
imageView.layer.transform = CATransform3DMakeRotation(M_PI , 1, 0,0);
} completion:^(BOOL finised){
}];
}];
最佳答案
我所做的(使用分组的 CABasicAnimation 对象而不是 View 动画,但同样的技巧应该起作用)是将 View /层旋转第一个 90 度,然后在开始下半部分之前将其旋转 180 度而不使用动画动画。这样,动画的后半部分实际上会导致 View /图层的正面旋转到 View 中,就好像它是背面一样,而不是向后。
当您切换它的图像并将其旋转 180 度时, View /层对观察者来说是侧向的,因此用户看不到这些变化。当它旋转剩余的 90 度时,新图像就位并且显示出 View /层的背面。
它工作得很好。
关于3d 动画的 ios 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739943/