[swift] SwiftUI에서의 애니메이션과 그리드 및 레이아웃 조정

애니메이션 사용하기

SwiftUI에서 애니메이션을 사용하려면 withAnimation 함수를 사용하여 애니메이션을 감싸주면 됩니다.

import SwiftUI

struct ContentView: View {
    @State private var isAnimated: Bool = false
    
    var body: some View {
        Button("애니메이션 시작") {
            withAnimation {
                self.isAnimated.toggle()
            }
        }
        .scaleEffect(isAnimated ? 2 : 1)
        .padding()
    }
}

위의 예제는 버튼을 탭하면 withAnimation 함수를 사용하여 scaleEffect를 애니메이션화합니다.

그리드 레이아웃 만들기

SwiftUI에서 그리드 레이아웃을 만들기 위해서 LazyVGrid 또는 LazyHGrid를 사용할 수 있습니다.

import SwiftUI

struct ContentView: View {
    let items = Array(1...10)

    var body: some View {
        ScrollView {
            LazyVGrid(columns: [GridItem(), GridItem()]) {
                ForEach(items, id: \.self) { item in
                    Text("\(item)")
                }
            }
        }
    }
}

위의 예제는 LazyVGrid를 사용하여 수직 방향으로 아이템들을 표시합니다.

레이아웃 조정

Spacer를 사용하여 레이아웃을 조정할 수 있습니다.

import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack {
            Text("왼쪽")
            Spacer()
            Text("오른쪽")
        }
    }
}

위의 예제는 Spacer를 사용하여 왼쪽과 오른쪽 텍스트 뷰를 화면의 왼쪽과 오른쪽으로 밀어 넣습니다.