3d 动画的 ios 问题

标签 ios core-animation transform layer

我正在尝试在 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/

相关文章:

iOS:将旋转的 UIImage 作为 alpha 蒙版应用于另一个 UIImageView

css - 第 N 个 child 奇偶不一起工作

jquery - 获取元素-moz-transform :rotate value in jQuery

ios - [String : AnyObject] be an AnyObject, 但 [String : AnyObject? ] 怎么可能不行?

ios - swift 3 将字符串颜色转换为cgcolor

iphone - 尝试使用 CAAnimationGroup 放大和缩小 UIButton 时出现问题

ios - 如何在动画过程中检测 UIImageView 上的点击?

SVG - 如何使矩形居中?

iOS 7 联系人号码空格不是空格

ios - 如何在iOS中获取默认的系统颜色?