[swift] SwiftUI 뷰의 사이즈 변경
SwiftUI에서 뷰의 사이즈를 동적으로 변경하는 방법을 알아보겠습니다.
1. 프레임 크기 조절
struct ContentView: View {
@State private var rectangleSize = CGSize(width: 100, height: 100)
var body: some View {
Rectangle()
.frame(width: rectangleSize.width, height: rectangleSize.height)
.onTapGesture {
withAnimation {
self.rectangleSize = CGSize(width: 200, height: 200)
}
}
}
}
위 예제에서 Rectangle
의 크기를 rectangleSize
의 값에 따라 동적으로 변경하고 있습니다. onTapGesture
에서 withAnimation
을 사용하여 애니메이션 효과를 추가했습니다.
2. GeometryReader 사용
struct ContentView: View {
@State private var rectangleSize: CGSize = .zero
var body: some View {
GeometryReader { geometry in
ZStack {
Rectangle()
.frame(width: self.rectangleSize.width, height: self.rectangleSize.height)
.foregroundColor(Color.red)
Button("Adjust Size") {
self.rectangleSize = CGSize(width: geometry.size.width / 2, height: geometry.size.height / 2)
}
}
}
}
}
GeometryReader
를 사용하여 부모 뷰의 크기에 따라 자식 뷰의 크기를 조절하는 예제입니다. Button
을 누르면 rectangleSize
가 동적으로 변경되고, Rectangle
의 크기가 자동으로 업데이트 됩니다.
사이즈를 동적으로 변경하는 두 가지 방법에 대해 알아보았습니다. SwiftUI에서는 다양한 방법으로 뷰의 사이즈를 조절할 수 있습니다.