티스토리 뷰

iOS

[iOS] UIViewPropertyAnimator 공식문서

Kim_Baechu 2022. 10. 28. 00:33

https://developer.apple.com/documentation/uikit/uiviewpropertyanimator

뷰의 변경 내용을 애니메이션으로 만들고 해당 애니메이션을 동적으로 수정할 수 있는 클래스입니다.

Declaration

@MainActor class UIViewPropertyAnimator : NSObject

Overview

UIViewPropertyAnimator 개체를 사용하면 변경 내용을 애니메이션으로 만들고 애니메이션을 완료하기 전에 동적으로 수정할 수 있습니다.

property animator를 사용하면 애니메이션을 처음부터 끝까지 정상적으로 실행하거나 상호작용 하는 애니메이션으로 전환하여 시간을 직접 제어할 수 있습니다.

애니메이터는 frame, center, alpha, transform properties과 같은 뷰의 애니메이션 가능한 속성에 대해 작동하여 사용자가 제공하는 블록에서 필요한 애니메이션을 만듭니다.

property animator를 생성할 때 다음을 지정합니다.

  • 하나 이상의 뷰의 속성을 수정하는 코드 block
  • 애니메이션이 실행되는 동안 애니메이션의 속도를 정의하는 timing curve
  • 애니메이션의 duration(초)
  • 애니메이션이 완료될 때 실행할 optional completion block

애니메이션 블록에서 애니메이션 적용 가능한 속성의 값을 해당 뷰에 반영할 최종 값으로 설정합니다.

예를 들어, 뷰를 페이드아웃하려면 해당 뷰의 알파 특성을 블록에서 0으로 설정합니다.

property animator는 해당 속성의 값을 초기 값에서 사용자가 블록에 지정한 새 값으로 조정하는 애니메이션을 만듭니다.

속성 값이 변경되는 속도는 property animator를 만들 때 지정한 timing curve에 의해 제어됩니다.

property animator에는 linear, ease-in, ease-out과 같은 내장된 UIKit 애니메이션 곡선이 지원됩니다.

또한 cubic Bezier 곡선이나 스프링 함수를 사용하여 애니메이션의 타이밍을 제어할 수 있습니다.

표준 초기화 방법 중 하나를 사용하여 애니메이터를 만드는 경우 startAnimation() 메서드를 호출하여 애니메이션을 명시적으로 시작해야 합니다.

애니메이터를 만든 후 즉시 애니메이션을 시작하려면 표준 이니셜라이저 대신 runningPropertyAnimator(Duration:delay:options:animations:completion: 포함) 메서드를 사용합니다.

이 클래스는 애니메이션을 시작, 중지 및 수정하는 방법을 정의하는 UIViewAnimplicitlyAnimating 및 UIViewImplicitlyAnimating 프로토콜을 채택합니다.

이러한 프로토콜의 방법에 대한 자세한 내용은 UIViewAnimating 및 UIViewImplicitlyAnimating을 참조하십시오.

Modify animations dynamically

property animator를 사용하면 애니메이션의 타이밍과 실행을 코드로 제어할 수 있습니다.

  • 애니메이션을 시작, 일시 중지, 재개 및 중지합니다. UIViewAnimating 프로토콜의 방법을 참조.
  • addAnimations(:) 및 addAnimations(:delayFactor:) 메서드를 사용하여 원본 애니메이션을 시작한 후 애니메이션 블록을 추가합니다.
  • fractionComplete 속성을 수정하여 일시 중지된 애니메이션을 제거합니다.
  • isReversed 속성을 사용하여 애니메이션의 방향을 변경합니다.
  • 애니메이션을 종료하기위해 일시 중지하고 continueAnimation(TimingParameters:durationFactor: 포함) 메서드를 사용하여, 부분적으로 완료된 애니메이션의 timing duration을 수정합니다.

대부분의 기본 동작은 이 클래스가 채택하는 UIViewAnimating 프로토콜의 속성에 의해 제어됩니다.

이러한 방법 및 속성을 사용하여 애니메이션을 시작, 일시 중지, 재개 및 중지할 수 있습니다.

또한 애니메이션을 제거하고 방향을 변경하는 데 사용할 수 있습니다.

이 클래스의 메서드 및 속성을 사용하여 애니메이션 블록 자체를 수정하고 타이밍 정보를 업데이트할 수 있습니다.

댓글
공지사항