SwiftUI/Forms

Breaking forms into sections

까칠코더 2019. 11. 21. 10:55
반응형

 

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

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/breaking-forms-into-sections]

 

Breaking forms into sections

 

SwiftUI의 form은 종종 일반 컨텐츠의 목록처럼 섹션으로 나눌때 가장 잘 동작합니다. 어떻게 분리할지는 여러분에게 달려있지만, 일반적으로 목적에 따라 그룹화 할때 가장 잘 동작합니다 - 주문페이지인 경우에 하나의 그룹에 항목을 넣을수 있고, 다른 곳에는 사용자정의한 것이고, 세번째에는 배달입니다.

 

유용하게도, form 섹션은 목록 섹션과 같고, 이는 두 군데 모두에서 같은 코드를 재사용할 수 있다는 것을 의미합니다. 따라서, 섹션에 header 또는 footer를 추가할 수 있으며, 또는 둘 다 사용하지 않고 섹션간에 화면 간격을 줄 수 있습니다.

 

예를들어, 다음은 2개의 섹션으로 된 form을 만듭니다 - 첫번째는 세그먼트 컨트롤과 토글이고 두번째는 저장 버튼입니다:

struct ContentView: View {
    @State private var enableLogging = false

    @State private var selectedColor = 0
    @State private var colors = ["Red", "Green", "Blue"]

    var body: some View {
        NavigationView {
            Form {
                Section(footer: Text("Note: Enabling logging may slow down the app")) {
                    Picker(selection: $selectedColor, label: Text("Select a color")) {
                        ForEach(0 ..< colors.count) {
                            Text(self.colors[$0]).tag($0)
                        }
                    }.pickerStyle(SegmentedPickerStyle())

                    Toggle(isOn: $enableLogging) {
                        Text("Enable Logging")
                    }
                }

                Section {
                    Button(action: {
                    // activate theme!
                    }) {
                        Text("Save changes")
                    }
                }
            }.navigationBarTitle("Settings")
        }
    }
}

 

반응형