A modifier that you apply to a view or another view modifier, producing a different version of the original value.
모디파이어는 뷰 또는 다른 뷰 모디파이어에 적용가능하며 원본 값의 다른 버젼을 생산한다.
Declaration
protocol ViewModifier
Overview
ViewModifier 프로토콜을 채택하면 사용자는 재사용가능한 모디파이어를 만들 수 있다. 이렇게 만들어진 모디파이어는 모든 뷰에 적용이 가능해진다.
아래의 예시는 몇몇의 모디파이어들을 조합하여서 새로운 모디파이어를 만들어내는 예시이다. 파란색 둥근 직사각형으로 둘러싸여진 파란색 캡션 텍스트를 만드는 모디파이어를 만들어보자.
struct BorderedCaption: ViewModifier {
func body(content: Content) -> some View {
content
.font(.caption2)
.padding(10)
.overlay(
RoundedRectangle(cornerRadius: 15)
.stroke(lineWidth: 1)
)
.foregroundColor(Color.blue)
}
}
Swift
복사
You can apply modifier(:) directly to a view, but a more common and idiomatic approach uses modifier(:) to define an extension to View itself that incorporates the view modifier:
이 modifier(_:)를 뷰에 직접적으로 적용시킬 수 있지만 보편적이고 이상적인 접근은 모디파이어를 뷰 자체의 extension 으로 정의하는 것이다.
extension View {
func borderedCaption() -> some View {
modifier(BorderedCaption())
}
}
Swift
복사
You can then apply the bordered caption to any view, similar to this:
Image(systemName: "bus")
.resizable()
.frame(width:50, height:50)
Text("Downtown Bus")
.borderedCaption()
Swift
복사