이미지 활용한 애니메이션

18.07.03 22:06 작성 조회수 151

0

안녕하세요 본 수업을 보면서 개인프로젝트를 진행중에 있습니다.

표현하고 싶은 것은 같은 위치에 2개의 이미지뷰가 존재하고

각 이미지는 UIImage.animate 로 이미지가 옆으로 이동되는 방식입니다.

표현하고 싶은것은 두이미지가 서로 반대방향으로 움직이면서 물결이 흐르듯한 애니메이션을 만들고 싶은데 , 한 이미지가 지나가고 난 후 동일한 이미지가 바로 연속적으로 따라와야 자연스러운데 이를 설정하기가 까다롭네요 ㅠㅠ

수업 내용은 아니지만 혹시나 괜찮은 조언을 주시면 감사드립니다.ㅠㅠ

''' override func viewDidLoad() {

super.viewDidLoad()

let time = DispatchTime.now() + .seconds(1)

    self.animationImageView1.image = UIImage(named:"wave_01")

self.animationImageView2.image = UIImage(named: "wave_02")

UIView.animate(withDuration: 2, animations:{self.animationImageView1.frame.origin.x = 50} , completion: nil)

for _ in 0...5{

UIView.animate(withDuration: 2, animations:{self.animationImageView1.frame.origin.x += 50} , completion: nil)

UIView.animate(withDuration: 2, animations:{self.animationImageView2.frame.origin.x -= 50} , completion: nil)

}

DispatchQueue.main.asyncAfter(deadline: time){

for _ in 0...5{

UIView.animate(withDuration: 2, animations:{self.animationImageView1.frame.origin.x -= 50} , completion: nil)

UIView.animate(withDuration: 2, animations:{self.animationImageView2.frame.origin.x += 50} , completion: nil)

}

}

// Do any additional setup after loading the view.

}

}

'''

위의 이미지는 이해를 돕고자 올렸습니다!

답변 1

답변을 작성해보세요.

0

    UIView.animate(withDuration: 1, animations: {

}) { (finished) in

if finished {

UIView.animate(withDuration: 1, animations: {

}) { (finished) in

if finished {

}

}

}

}

간단한 방법은

위 코드처럼 completion 블록안에서 다른 애니메이션을 추가하는 식으로 진행하면

첫번째 애니메이션 종료 후 다음 애니메이션을 실행할 수 있습니다.