2017-03-03 7 views
0

UIImageView를 위, 아래, 왼쪽 및 오른쪽으로 이동하려고합니다. 애니메이션은 네 번 4 번해야합니다. 가운데 이미지가 위쪽으로 이동 한 후 왼쪽 위치와 오른쪽 위치로 이동합니다. UIAnimation swift 3을 사용하여 어떻게 이것을 할 수 있습니까?Swift3의 UIView 애니메이션

UIView.animate(withDuration: 0.1, 
       delay:0, 
       animations: {}, 
       completion: {completion in}) 

애니메이션을 사용하여 이미지를 왼쪽, 오른쪽, 아래쪽으로 이동하는 방법은 무엇입니까? 당신이 애니메이션의 순서를 지정할 수 있습니다로

+0

UIImageView의 중심에 원하는 위치에 애니메이션을 적용 할 수 있습니다 – Mannopson

답변

0
UIView.animate(withDuration: 1, delay:0, animations: { 
     //top 
     self.tempVW.frame.origin.y = self.tempVW.frame.origin.y - 100 
    }, completion: {completion in 
     UIView.animate(withDuration: 1, delay:0, animations: { 
      //left 
      self.tempVW.frame.origin.x = self.tempVW.frame.origin.x - 100 

     }, completion: {completion in 
      UIView.animate(withDuration: 1, delay:0, animations: { 
       //bottom 
       self.tempVW.frame.origin.y = self.tempVW.frame.origin.y + 100 

      }, completion: {completion in 
       UIView.animate(withDuration: 1, delay:0, animations: {      //right 
        self.tempVW.frame.origin.x = self.tempVW.frame.origin.x + 100 
       }, completion: {completion in 


       }) 
      }) 
     }) 

    }) 
0
UIView.animate(withDuration: 1, delay:0, animations: { 
     //top 
     self.imageView.frame.origin.y = self.imageView.frame.origin.y - 100 
    }, completion: {completion in 
     UIView.animate(withDuration: 1, delay:0, animations: { 
      //bottom 
      self.imageView.frame.origin.y = self.imageView.frame.origin.y + 100 
     }, completion: {completion in 
      UIView.animate(withDuration: 1, delay:0, animations: { 
       //left 
       self.imageView.frame.origin.x = self.imageView.frame.origin.x - 100 

      }, completion: {completion in 
       UIView.animate(withDuration: 1, delay:0, animations: { 

       }, completion: {completion in 
        //right 
        self.imageView.frame.origin.x = self.imageView.frame.origin.x + 100 
       }) 
      }) 
     }) 

    }) 
2

당신은이에 대한 키 프레임 애니메이션을 사용한다. 다음은 기본 예제입니다.

let animationDuration = 2.0 
let position: CGFloat = 50.0 
let viewToAnimate = UIImageView() 

UIView.animateKeyframes(withDuration: animationDuration, delay: 0.0, options: .calculationModeLinear, animations: { 
    UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 1/3, animations: { 
     viewToAnimate.frame.origin.y = viewToAnimate.frame.origin.y + position 
    }) 
    UIView.addKeyframe(withRelativeStartTime: 1/4, relativeDuration: 1/4, animations: { 
     viewToAnimate.frame.origin.y = viewToAnimate.frame.origin.y - (position * 2) 
    }) 
    UIView.addKeyframe(withRelativeStartTime: 2/4, relativeDuration: 1/4, animations: { 
     viewToAnimate.frame.origin.x = viewToAnimate.frame.origin.x - position 
    }) 
    UIView.addKeyframe(withRelativeStartTime: 3/4, relativeDuration: 1/4, animations: { 
     viewToAnimate.frame.origin.x = viewToAnimate.frame.origin.x + (position * 2) 
    }) 
}, completion: { completed in 

})