반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-custom-modifiers]

 

How to create custom modifiers

 

뷰에 동일한 modifiers 세트를 연속해서 붙이는 경우에(예를들어, 배경 색상, 동일한 패딩, 특정 폰트 등등을 제공하는 경우), 모든 변경사항을 캡슐화 하는 사용자정의 뷰 modifier를 만듬으로써 중복되는 것을 피할 수 있습니다. 따라서 빨간색을 만들고, 큰 폰트를 사용하도록 만들기라고 말하기보다는, 경고처럼 보이게 만들기로 말할 수 있고, 사전에 modifier의 세트를 만들어 적용합니다.

 

직접 만들고자 하는 경우에, ViewModifier 프로토콜을 준수하는 구조체를 정의합니다. 이 프로토콜은 원하는데로 어떤 종류의 컨텐츠로 변환해서 그 결과를 반환하는 body(content:) 메소드를 허용하는 것을 요구합니다.

 

예를들어, 다음은 새로운 패딩을 추가하고, 빨간 배경 색상, 흰색 텍스트, 큰 폰트의 PrimaryLabel modifer를 만듭니다.

struct PrimaryLabel: ViewModifier {
    func body(content: Content) -> some View {
        content
            .padding()
            .background(Color.red)
            .foregroundColor(Color.white)
            .font(.largeTitle)
    }
}

 

다음과 같이, 뷰의 하나로 사용하기 위해 .modifier(PrimaryLabel())modifier를 추가합니다.

struct ContentView: View {
    var body: some View {
        Text("Hello, SwiftUI")
            .modifier(PrimaryLabel())
    }
}

 

반응형
Posted by 까칠코더
,