반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
[원문 : https://www.hackingwithswift.com/quick-start/swiftui/pickers-in-forms]
Pickers in forms
SwiftUI의 picker 뷰는 forms 내부에 있을때, 특별한 동작을 하며, 사용하는 플랫폼에 따라 자동으로 조정합니다. iOS에서 이 동작은 특히 인상적입니다. picker가 가능한 새로운 옵션의 목록 안으로 이동하는 단일 목록 행으로 축소 할 수 있습니다 - 많은 옵션으로 작업할때 정말 자연스로운 방법입니다.
예를들어, 다음은 항목들에 대한 배열을 사용하는 picker가 잇는 form을 만듭니다.
struct ContentView: View {
var strengths = ["Mild", "Medium", "Mature"]
@State private var selectedStrength = 0
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedStrength, label: Text("Strength")) {
ForEach(0 ..< strengths.count) {
Text(self.strengths[$0])
}
}
}
}.navigationBarTitle("Select your cheese")
}
}
}
iOS 에서, 단일 목록 행으로 나타날 것이며, 가능한 모든 옵션을 보여주는 새로운 화면을 가져오기 위해 해당 항목을 탭할 수 있습니다 - Mid, Medium, Mature. 현재 선택한 항목 옆에 체크 표시가 있고, 새로운 옵션을 선택할때 현재 보여지는 화면과 함께 이전 화면으로 돌아갑니다.
팁 : forms에 있는 pickers는 이러한 네비게이션 동작이 있기 때문에, iOS에서의 NavigationView으로 래핑(wrap)하는 것이 중요하며, 그렇지 않으면 탭하는 것이 동작하지 않습니다.
이러한 동작을 비활성화하길 원하는 경우에, 다음과 같이 .pickerStyle(WheelPickerStyle()) modifier를 사용해서 picker를 강제로 정규(regular) 스타일을 채택하도록 할 수 있습니다.
Picker(selection: $selectedStrength, label: Text("Strength")) {
ForEach(0 ..< strengths.count) {
Text(self.strengths[$0])
}
}
.pickerStyle(WheelPickerStyle())
반응형
'SwiftUI > Forms' 카테고리의 다른 글
Showing and hiding form rows (0) | 2019.11.21 |
---|---|
Enabling and disabling elements in forms (0) | 2019.11.21 |
Breaking forms into sections (0) | 2019.11.21 |
Basic form design (0) | 2019.11.20 |
Working with forms (0) | 2019.11.20 |