Swift

[SwiftUI] 기본 지식

beejaem 2023. 4. 20. 14:41
@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 변수의 값에 따라 뷰가 재생성 되는 것을 볼 수 있다.

isActivated = false
isActivated = true

'Swift' 카테고리의 다른 글

[Swift] 타이머 만들기  (0) 2023.05.02
[SwiftUI] 공부 1일차  (0) 2023.04.19