Transition?

Untitled

Untitled

Transition은 인스턴스 메소드이다.

구현부를 보면, 파라미터 값으로 AnyTransition이라는 값을 받게 되는데 해당 값은 뷰가 어떠한 변화를 감지했을때 이를 추가한 뷰를 다시 리턴해주는 방식으로 작용한다.

AnyTransition

Untitled

anytransition은 어떠한 타입의 트렌지션을 줄지에 대한것이며 구조체이다.

따라서 뷰에 transition을 주고, .anytransition중에 하나를 선택해서 보내주면, 해당 트렌지션이 작동하는 view를 리턴해주느 방식인 것이다.

예시코드

struct ContentView: View {
    @State private var isAnimation = false
    
    var body: some View {
        VStack {
            if isAnimation {
                    Rectangle()
                        .foregroundColor(.red)
                        .transition(.move(edge: .bottom))
                        .animation(.easeIn(duration: 3))
            }
            Button("Animate") {
                isAnimation.toggle()
            }
        }
    }
}

화면 기록 2023-03-31 오전 12.51.44.mov


참고자료

[iOS - SwiftUI] Transition, AnyTransition 사용 방법 (slide, move, scale, opacity, asymmetric)