Layout Transition API
Last updated
Was this helpful?
Last updated
Was this helpful?
Layout Transition API는 Texture에서 제공하는 모든 컴포넌트들에 대해서 애니메이션을 쉽게 만들 수 있도록 설계되었습니다. 심지어 전체 뷰 집합을 완전히 다른 뷰 집합으로 변형 할 수도 있습니다.
Layout Transition 시스템이 동작을 시작할 때 우선 사전에 내부적으로 레이아웃 변형 전/후간의 파악하는 작업을 진행하며, 자동으로 새로운 노드 추가 및 제거, 요소의 위치에 대해서도 업데이트를 합니다.
Texture로 개발된 모든 UI는 animationLayoutTransition
method내에서 수행합니다.
animation 동작 호출이 시작될 때 ASContextTransitioning
을 받아오는데 ASContextTransitioning
에서 제공해주는 methods 다음과 같습니다.
Name
Return Type
Description
initialFrame(for: ASDisplayNode)
CGRect
특정 노드에 대해서 사전에 계산된 레이아웃 변경전의 Frame값을 가져옵니다.
finalFrame(for: ASDisplayNode)
CGRect
특정 노드에 대해서 사전에 계산된 레이아웃 변경의 Frame값을 가져옵니다.
completeTransition(_ didComplete: Bool)
Void
transition 완료에 대해서 제어합니다.
isAnimated()
Bool
animate 상태인지에 대해서 반환합니다.
insertedSubnodes()
Array<ASDisplayNode>
변경이후에 추가될 예정인 노드들을 반환합니다.
removedSubnodes()
Array<ASDisplayNode>
변경이후에 제거될 예정인 노드들을 반환합니다.
animateTransitionLayout
method가 override된 노드에 transitionLayout
method를 호출해주면 됩니다.
Parameter Name
Description
withAnimation
필요에 따라 선택사항이지만 false로 지정하더라도 animateTransitionLayout은 동작합니다. 단 animation처리는 되지 않습니다.
shouldMeasureAsync
레이아웃을 비동기적으로 측정합니다.
measurementCompletion
새로운 레이아웃이 계산된 경우에만 호출되는 블록입니다.