반응형
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())
}
}
반응형
'개발 > SwiftUI' 카테고리의 다른 글
How to make carousel lists on watchOS (0) | 2019.12.02 |
---|---|
How to get translucent lists on macOS (0) | 2019.12.02 |
Learn once, apply anywhere (0) | 2019.12.02 |
How to wrap a custom UIView for SwiftUI (0) | 2019.12.02 |
How to store views as properties (0) | 2019.12.02 |
How to combine text views together (0) | 2019.12.02 |
How to create and compose custom views (0) | 2019.12.02 |
How to create a custom transition (0) | 2019.11.29 |