2015-06-20 3 views
1

Я хочу нарисовать изображение навсегда. Я пробовал следующий код:Спиннинговая анимация изображения

UIView.animateWithDuration(3, animations: { 
     self.loginLogo.transform = CGAffineTransformMakeRotation((360 * CGFloat(M_PI))/360) 
     }){ (finished) -> Void in 
      self.rotateImage() 
    } 

Но это работает некогда. Мое изображение не дергается навсегда. Как я могу это исправить?

+0

Вы могли бы взглянуть на этот пример кода, который может помочь: https://github.com/rebello95/SizedSpinningImage – rebello95

+0

возможно дубликат [Спин UIImageView непрерывно] (HTTP: //stackoverflow.com/questions/7269076/spin-uiimageview-continuously) –

+0

Это не для быстрой. –

ответ

1

Если вы хотите, чтобы повернуть изображение навсегда вы можете сделать это следующим образом:

func rotateViewLayer() { 
    let rotateView = CABasicAnimation() 

    rotateView.fromValue = 0.degreesToRadian 
    rotateView.toValue = 360.degreesToRadian 
    rotateView.duration = 1 
    rotateView.repeatCount = Float.infinity 
    rotateView.removedOnCompletion = false 
    rotateView.fillMode = kCAFillModeForwards 
    rotateView.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear) 
    imageView.layer.addAnimation(rotateView, forKey: "transform.rotation.z") 
} 

А вот ваш помощник расширение:

extension Int { 
    var degreesToRadian : CGFloat { 
     return CGFloat(self) * CGFloat(M_PI)/180.0 
    } 
} 

И вы можете обратиться к образцу проекта THIS для получения дополнительной информации.

0

использовать это на слое вашего зрения

var myImageView:UIImageView? 
    var rotation = CABasicAnimation(keyPath: "transform.rotation") 
    rotation.fromValue = 0.0 
    rotation.toValue = 2*M_PI 
    rotation.duration = 1.1 
    rotation.repeatCount = Float.infinity 
    myImageView?.layer.addAnimation(rotation, forKey: "Spin") 
+0

Как реализовать его для просмотра изображений? –

+0

отредактировал ответ –

+0

Я попробовал, но. Изображение не перемещается. –

0

Это должно работать

func startAnimationWithDuration(duration:CGFloat) 
    { 
     var rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z") 
     rotationAnimation.fromValue = 0 
     rotationAnimation.toValue = 2 * M_PI 
     rotationAnimation.duration = NSTimeInterval(duration) 
     rotationAnimation.repeatCount = 1000.0 //some large value 
     imageView.layer.addAnimation(rotationAnimation, forKey: "spin") 
    } 
Смежные вопросы