protocol View
앱의 사용자 인터페이스의 한 부분이며, 뷰를 구성하는 데 사용하는 수정자(Modifier)를 제공하는 타입
View
프로토콜을 채택하여 커스텀 뷰를 만듦body
를 구현해야 함body
를 구성View
프로토콜은 뷰 레이아웃을 구성하는 데 사용하는 프로토콜 메서드인 수정자(Modifier)들을 제공기존의 imperative 방식은 view를 인스턴스화, 배치, 구성하는 것은 물론이고 상황의 변화에 따른 지속적인 업데이트가 필요함
SwiftUI는 선언적 접근을 통해 UI 구성에 대한 부담을 줄이고, 사용자 입력과 상태 변경 등의 이벤트에 대응하여 뷰를 자동으로 업데이트함
뷰의 모양 및 동작을 구성하는 것을 도와주는 역할
View Modifier는 View
프로토콜에서 제공하는 동작을 사용하는 메서드이므로, 이를 준수하는 모든 유형에 적용 가능
Modifier을 체이닝하여 복잡한 효과를 구성 가능
대상 뷰에 영향을 미치지 않는 경우에도 Modifier을 뷰에 적용 가능
VStack {
Text("Title") // Font = .title
.font(.title)
Text("First body line.") // Font = .body
Text("Second body line.") // Font = .body
}
.font(.body)
특정 뷰에게만 제공하는 Modifier는 다른 뷰에서 사용 불가능
VStack {
Text("Hello, World!")
}
.bold() // Fail
padding()
과 같은 opaque type을 반환하는 general modifier을 체이닝하면 더 이상 특정 뷰의 Modifier은 사용 불가 Text("Hello, world!")
.padding()
.bold() // Fail
Text("Hello, world!")
.bold()
.padding() // Success