작성
·
200
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 블록안에서 다른 애니메이션을 추가하는 식으로 진행하면
첫번째 애니메이션 종료 후 다음 애니메이션을 실행할 수 있습니다.