图像在iOS中的3D图像视图中360度旋转



我正在开发一个应用程序,在该应用程序中,我希望UIImage在UIImageview中360度三维旋转。我尝试过很多代码,但所有带有CAAnimation的代码都会顺时针旋转整个图像或翻转整个图像视图。那么,我该如何开发这种类型的功能呢?

在Swift中,您可以使用以下代码进行无限旋转:Swift-

let kRotationAnimationKey = "com.myapplication.rotationanimationkey" // Any key
func rotateView(view: UIView, duration: Double = 1) {
    if view.layer.animationForKey(kRotationAnimationKey) == nil {
        let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation")
        rotationAnimation.fromValue = 0.0
        rotationAnimation.toValue = Float(M_PI * 2.0)
        rotationAnimation.duration = duration
        rotationAnimation.repeatCount = Float.infinity
        view.layer.addAnimation(rotationAnimation, forKey: kRotationAnimationKey)
    }
}

停止类似于:

func stopRotatingView(view: UIView) {
    if view.layer.animationForKey(kRotationAnimationKey) != nil {
        view.layer.removeAnimationForKey(kRotationAnimationKey)
    }
}

目标C

这对我来说非常有效:iphone UIImageView旋转

#import <QuartzCore/QuartzCore.h>
    - (void) runSpinAnimationOnView:(UIView*)view duration:(CGFloat)duration rotations:(CGFloat)rotations repeat:(float)repeat;
    {
        CABasicAnimation* rotationAnimation;
        rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
        rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
        rotationAnimation.duration = duration;
        rotationAnimation.cumulative = YES;
        rotationAnimation.repeatCount = repeat;
        [view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
    }

最新更新