SwiftUI 컨트롤 컴포넌트
2021년 11월 5일 수정
≡ 목차 (Table of Contents)
Button
Button( action: { print("Button Action") }, label: { Text("Button Title") } ) Button(action: {}) { Text("Button with Image") Image(systemName: "square.and.arrow.up") }
ButtonStyle
ButtonStyle
은 이름 처럼 버튼의 스타일을 정의할 수 있는 기능이다. 딱히 컨트롤 컴포넌트와는 관계는 없지만 Button과 비슷한 위치에 있으면 좋을 것 같아 여기에 정리한다.
버튼 스타일은 대충 아래와 같은 방식으로 구현한다.
struct SomeButonStyle: ButtonStyle { func makeBody(configuration: Self.Configuration) -> some View { configuration.label .foregroundColor(.primary) .padding() } }
이렇게 정의된 스타일은 buttonStyle()
메서드를 이용해 지정할 수 있다.
Button("Some Button") { ... } .buttonStyle(SomeButtonStyle())
Toggle
Toggle(isOn: $someProperty) { Text("Switch Title") }
TextEditor
TextEditor(text: $text) .padding() .foregroundColor(Color.black) .font(.title) .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 200) .border(Color.black, width: 1)
Picker
피커는 일종의 리스트에서 항목을 선택하기 위한 팝업(Popup) 버튼이다. 버튼을 누르면 리스트가 뜨고 여기서 선택하면 버튼이 선택된 항목으로 표시된다.
Picker("Quarter", selection: $pickerSelection) { Text("First").tag(0) Text("Second").tag(1) Text("Third").tag(2) Text("Fourth").tag(3) }
selection으로 바인딩 된 항목은 태그의 값을 저장한다. 그래서 해당 프로퍼티는 아래처럼 생겼다.
@State private var pickerSelection: Int = 0