Language/SwiftUI

SwiftUI - ContentView, 생명주기

비코딩 2022. 12. 6. 03:45

ContentView

  • View를 채택하고 있는 ContentView 구조체 안에 body라는 프로퍼티가 있어야 한다.
  • 이 body가 ContentView의 최상위 View의 역할
  • 이 body는 연산 프로퍼티로 구현

 

body 개의 View 반환해야 한다.

  • Stack / Group 등을 사용해서 여러 개의 뷰들을 하나의 뷰로 감싸서 하나의 View로 리턴해야 한다.

 

View 생명주기 관리

  • onAppear(=ViewDidAppear), onDisappear(=ViewDidDisappear) 라는 modifier를 사용
struct ContentView: View {
    var name = "Sodeul"
    var body: some View {
        VStack {
            Text("Hello, \(name)!")
            .onAppear {
                print("Text가 보입니다!!")
            }
            .onDisappear {
                print("Text가 사라집니다!!")
            }
        }
    }
}

 

 

body 프로퍼티는 View 생성되고 번만 만들어지는 아니라

View Life Cycle 동안 필요할 때마다 여러 번씩 새로 만들어져서 리턴됨

(SwiftUI에선 View 자체가 클래스가 아닌 구조체로 매우 가볍기 때문에 문제 없음)

 

 

참고 :  https://babbab2.tistory.com