본문 바로가기

iOS

UIViewPropertyAnimator

728x90

UI의 애니메이션을 적용하기 위해서 UIView.animate를 많이 사용합니다.

 

그러나, 해당 메서드는 곧 deprecated 될 가능성이 높습니다. 

💬 Use of these methods is discouraged. Use the UIViewPropertyAnimator class to perform animations instead.

위와 같이 공식 문서에서도 UIViewPropertyAnimator 사용을 권장하고 있습니다. 해당 프로토콜은 iOS 10이상부터 사용 가능한 API 입니다. (따라서, 프로젝트 타겟이 10이상인 프로젝트에서 애니메이션을 적용한다면, UIViewPropertyAnimator를 사용하는 것을 권장합니다.)

 

자세한 설명은 공식 문서를 통해서 살펴볼 수 있습니다. 

 

🤔 UIViewPropertyAnimator?

특징을 살펴보도록 하겠습니다.

 

✔️ 앞서 말한 것과 같이 iOS 10부터 사용이 가능하며, UIView.animate를 대체하는 API입니다.

✔️ 애니메이션을 관리하고 있으므로 애니메이션 상태(시작/중지/일시정지 등)을 제어할 수 있습니다. 사용자와의 interactive한 애니메이션도 제어할 수 있습니다.

✅ Interative Animation
사용자 이벤트를 추적하면서 Animation이 동작하는 것을 말합니다.
(뷰 변경 사항에 애니메이션을 적용하고 해당 애니메이션을 동적으로 수정할 수 있는 클래스입니다.)

 

Animation의 상태는 아래와 같습니다. ⬇️

✅ Inactive : 초기 상태, 애니메이션이 완료 되면 다시 돌아오는 상태입니다.

✅ Active : startAnimation/pauseAnimation을 호출하자마자 애니메이터가 활성화됩니다. 애니메이션이 자연스럽게 끝나거나 stopAnimation 메서드가 호출될 때까지 이 상태를 유지합니다.

✅ Stopped : stopAnimation을 호출하면 이 상태로 들어갑니다. (애니메이터는 재구성 및 Inactive 없이 먼저 Active 상태로 돌아올 수 없습니다.)

 

✔️ 애니메이션을 생성하면, Inactive(= 초기상태)가 됩니다.

✔️ 애니메이션을 시작, 일시정지 하면 Active 상태가 됩니다.

✔️ Active 한 상태에서 끝내면(= Finish), Inactive 상태가 됩니다. 

✔️ Active 한 상태에서 멈추면(= Stop), Stopped 상태가 되는데 이 상태는 완전히 끝낸, Finish 된 상태는 아닙니다.

 

✔️ UIViewPropertyAnimator 클래스를 이용하며, runningPropertyAnimator 메서드를 이용하거나 UIViewPropertyAnimator 생성자를 이용해서 애니메이션을 적용할 수 있습니다.

'iOS' 카테고리의 다른 글

UIResponder  (0) 2022.07.28
Delegate? DatsSource?  (0) 2022.07.28
Swift Package Manager Update  (0) 2022.04.26
개발자 계정 팀 인증서 등록  (1) 2022.04.21
Apple Developer Pending  (0) 2022.04.19