Enum을 활용한 UI 그리기
작성일
enum ButtonType {
case primary
case secondary
case destructive
}
struct CustomButton: View {
var buttonType: ButtonType
var body: some View {
switch buttonType {
case .primary:
return AnyView(Button("Primary Button").foregroundColor(.white).padding().background(Color.blue).cornerRadius(5))
case .secondary:
return AnyView(Button("Secondary Button").foregroundColor(.blue).padding().background(Color.white).cornerRadius(5).overlay(RoundedRectangle(cornerRadius: 5).stroke(Color.blue, lineWidth: 2)))
case .destructive:
return AnyView(Button("Destructive Button").foregroundColor(.white).padding().background(Color.red).cornerRadius(5))
}
}
}
이런 방식으로 뷰를 작성한 후,
struct ContentView: View {
var body: some View {
VStack {
CustomButton(buttonType: .primary)
CustomButton(buttonType: .secondary)
CustomButton(buttonType: .destructive)
}
}
}
이렇게하면, 뷰를 원하는 타입으로 분리해서 사용할 수 있다.