@State
private var isActivated : Bool = false
State
SwiftUI는 @State로 선언된 property를 관리합니다. @State는 @properyWrapper로, SwiftUI로 하여금 이 프로퍼티가 하고싶은 행동을 정의하는 타입이라고 이해 시킵니다!
따라서 @State로 선언된 변수의 값이 변경되는 경우, View를 무효화(invalidate)하고 var body: some View를 recompute 하도록 합니다.
@State 인스턴스는 값 자체가 아닌 값을 읽고 쓰는 수단이며, 이 State의 기본 값에 접근하기 위해서 변수의 이름을 사용합니다. 변수의 이름은 wrappedValue를 반환합니다.
@State
private var isActivated : Bool = false
var body: some View {
HStack{
BackgroundColor()
BackgroundColor()
BackgroundColor()
}
.padding(isActivated ? 50.0 : 10.0)
.background(isActivated ? Color.red : Color.black)
.onTapGesture {
print("클릭되었습니다.")
//애니메이션 추가
withAnimation{
self.isActivated.toggle()
}
}
}
위처럼 @State를 이용해 isActivated 변수의 값에 따라 뷰가 재생성 되는 것을 볼 수 있다.
'Swift' 카테고리의 다른 글
[Swift] 타이머 만들기 (0) | 2023.05.02 |
---|---|
[SwiftUI] 공부 1일차 (0) | 2023.04.19 |