티스토리 뷰

Tech/SwiftUI

SwiftUI @State살펴보기

Ellie Kim 2020. 11. 2. 02:00

값이 변하면 UI가 업데이트되어야 한다고 가정해봅시다.

그때 SwiftUI에서는 @State를 사용할 수 있습니다.

SwiftUI는 State로 선언된 프로퍼티의 저장 공간을 관리합니다.

SwiftUI에서 @State변수가 변경되면 뷰는 appearance를 무효화하고 body를 재계산합니다.

주어진 뷰에 대한 단일 소스로 사용합니다.

 

State 인스턴스는 값 그 자체라는 것이 아니라 값의 읽기와 쓰는 수단입니다.

 

뷰의 본문 내부 또는 호출된 메서드에서만 프로퍼티에 접근해야 합니다.

뷰 클라이언트가 접근하지 못하도록 프로퍼티를 private으로 선언합니다.

어떤 스레드에서도 프로퍼티 상태를 변경하는 것은 안전합니다.

 

다른 뷰에 프로퍼티 상태를 전달하기 위해서 $와 변수 이름을 함께 사용해 프로퍼티 속성을 전달합니다.

아래 코드에서 PlayerView는 isPlaying프로퍼티의 상태를 PlayButton한테 전달합니다.

struct PlayerView: View {
    var episode: Episode
    @State private var isPlaying: Bool = false

    var body: some View {
        VStack {
            Text(episode.title)
            Text(episode.showTitle)
            PlayButton(isPlaying: $isPlaying)
        }
    }
}

@State속성의 로컬 특성을 강화하기 위해서 애플은 private으로 선언하는 것을 권장합니다. 

 

resource:

developer.apple.com/documentation/swiftui/state

www.hackingwithswift.com/quick-start/swiftui/what-is-the-state-property-wrapper

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함