SwiftUI - ViewModifier

0

SwiftUI 공부

목록 보기
4/6
post-thumbnail

ViewModifier

  • UI를 작성할 때 Font, ForgroundColor와 같은 옵션 중복을 줄이기 위하여, ViewModifier를 작성함.
  • ViewModifier protocol을 상속해야함.
  • italic과 같은 일부 옵션은 사용 할 수없음.
  • 사용 할 수 없는 옵션은 extension 을 이용하여 작성하기도 함.
...
	var body: some View {
        VStack{
            Text("Main Title!")
                .CustomFont()
            Text("Sub Title!")
                .modifier(MyTextStlye())
            Text("description!")
                .modifier(MyTextStlye(myWeight:.bold, myColor: .red))
            Text("description!")
                .modifier(MyTextStlye(myWeight:.bold))
        }
    }
...

struct MyTextStlye: ViewModifier {
    var myWeight = Font.Weight.regular
    var myfont = Font.title2
    var myColor = Color.black
    func body(content: Content) -> some View {
        content
            .font(myfont.weight(myWeight))
            .foregroundColor(myColor)
            .padding(.bottom, 20)
    }
}

...

private extension Text {
    func CustomFont() -> Text {
        self
            .font(.title2)
            .bold()
            .italic()
            .foregroundColor(.orange)
    }
}

extesion을 작성 할 때 해당 파일에서만 이용하기 위해 private를 이용 할 수 있음.
ViewModifier을 이용하면, 중복되는 UI코드를 많이 줄일 수 있다.

profile
IOS 개발하며 먹고사는 게으른 개발자

0개의 댓글