본문 바로가기

프로그래밍/SWIFT

100DaysOfSwiftUI - Day 23

반응형

스위프트UI의 뷰는 class 가 아닌 struct 이다. 단순하다. 클래스 구조는 기본 클래스에도 자주 사용되지 않는 수많은 프로퍼티들이 달려있고, 이 기본 클래스를 상속받는 모든 뷰들도 이들을 다 가지고 있다.

스위프트UI의 뷰에 모디파이어가 붙으면, 이전에 만들어진 뷰에 대해 수정된 뷰가 된다.

struct ContentView: View {
    var body: some View {
        Button("Hello") {
            print(type(of: self.body))
        }
        .padding()
        .frame(width: 300, height: 100)
        .background(.yellow)
    }
}

단순한 버튼에, padding, frame, background 3개의 모디파이어가 붙어 모양이 변경된 뷰. 클릭 이벤트시에 이 뷰의 type을 찍어보면 다음과 같이 나온다.

ModifiedContent<ModifiedContent<ModifiedContent<Button<Text>, _PaddingLayout>, _FrameLayout>, _BackgroundStyleModifier<Color>>

---

ModifiedContent<
	ModifiedContent<
    	ModifiedContent<
        	Button<Text>, 
            _PaddingLayout
        >, 
        _FrameLayout
    >, 
_BackgroundStyleModifier<Color>
>

https://daewonyoon.tistory.com/440

728x90