我正在尝试在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){
}];
}];
答案 0 :(得分:1)
我做了什么(使用分组的CABasicAnimation对象而不是视图动画,但同样的技巧应该工作)是将视图/图层旋转前90度,然后在没有动画的情况下旋转180度,然后开始下半部分动画。这样,动画的后半部分实际上会导致视图/图层的正面旋转到视图中,就好像它是背面,而不是向后。
当您切换图像并将其旋转180度时,视图/图层是查看器的边缘,因此用户无法看到这些更改。当它旋转剩余的90度时,新图像就位,它看起来露出了视图/图层的背面。
完美无缺。
答案 1 :(得分:0)
当您旋转视图时,它类似于在现实生活中旋转对象。因此,一旦旋转超过90度,它将反转物体。这就是你的第二张图像倒置的原因。最简单的方法是设置图像的仿射变换,使其旋转180度,然后再添加。
编辑:我的愚蠢......我的意图是this
bottomI.orientation = UIImageOrientationDown