인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

이상호 이님의 프로필 이미지
이상호 이

작성한 질문수

iOS AutoLayout을 활용한 실전 UI구성 전략 - 카카오톡 같은 고급 UI 만들기

Graph_3_AutoLayout_Animate

이미지 활용한 애니메이션

작성

·

203

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

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

    UIView.animate(withDuration: 1, animations: {

}) { (finished) in

if finished {

UIView.animate(withDuration: 1, animations: {

}) { (finished) in

if finished {

}

}

}

}

간단한 방법은

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

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

이상호 이님의 프로필 이미지
이상호 이

작성한 질문수

질문하기