2016-08-06 5 views
1

Я разрабатываю одно приложение, в котором я хочу, чтобы UIImage вращался в UIImageview 360 градусов в трех измерениях. Я пробовал много кодов, но весь код с CAAnimation вращает целое изображение по часовой стрелке или переворачивает изображение всего изображения. Итак, как я могу развить этот тип функциональности?Изображение Повернуть в режиме просмотра изображений 360 градусов в 3D в iOS

+0

Проверить это http://stackoverflow.com/questions/6531332/how-to-rotate-an-uiimageview-with-catransform3drotate-make-an-effect-like-door-o – kb920

ответ

2

В 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) 
    } 
} 

Objective 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"]; 
    }