[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
를 사용하여 왼쪽과 오른쪽 텍스트 뷰를 화면의 왼쪽과 오른쪽으로 밀어 넣습니다.