앱을 사용하는 동안 사용자의 걸음을 추적하여 그래프로 보여주는 뷰를 애니메이션화 하여 보여줄 수 있도록 해줍니다.


1. 앱에 하이킹 데이터 추가하기

2. 각각의 뷰에 애니메이션 추가하기

Untitled

// HikeView.swift
import SwiftUI

struct HikeView: View {
    var hike: Hike
    @State private var showDetail = false

    var body: some View {
        VStack {
            HStack {
                HikeGraph(hike: hike, path: \.elevation)
                    .frame(width: 50, height: 30)

                VStack(alignment: .leading) {
                    Text(hike.name)
                        .font(.headline)
                    Text(hike.distanceText)
                }

                Spacer()

                Button {
                    showDetail.toggle()
                } label: {
                    Label("Graph", systemImage: "chevron.right.circle")
                        .labelStyle(.iconOnly)
                        .imageScale(.large)
                        .rotationEffect(.degrees(showDetail ? 90 : 0))
                        **//.animation(nil, value: showDetail)
                        .scaleEffect(showDetail ? 1.5 : 1) // 크기가 변하는 애니메이션 효과**
                        .padding()
                        **//.animation(.spring(), value: showDetail) // showDetail 값이 변경될 때 동작하는 애니메이션 효과**
                }
            }

            if showDetail {
                HikeDetail(hike: hike)
            }
        }
    }
}

3. State 값 변경 시 애니메이션 효과 주기

Untitled