PickerStyle提供了WheelPickerStyle,SegmentedPickerStyle等。我想对其进行自定义,创建一个单选按钮,一次只能选择一个。
我是Android开发人员,并且是新手。我正在使用 SwiftUI 来满足UI需求。
我查看了文档,并且有一个PickerStyle协议,但是我无法实现它,也没有找到任何教程。我有以下代码:
struct RadioPickerStyle: PickerStyle {
static func _makeView<SelectionValue>(value: _GraphValue<_PickerValue<RadioPickerStyle, SelectionValue>>, inputs: _ViewInputs) -> _ViewOutputs where SelectionValue : Hashable {
// Text("\(value)")
}
static func _makeViewList<SelectionValue>(value: _GraphValue<_PickerValue<RadioPickerStyle, SelectionValue>>, inputs: _ViewListInputs) -> _ViewListOutputs where SelectionValue : Hashable {
// List(inputs) {
// ForEach
// }
}
我想在以下代码中使用它:
...
@State var gender: Int = 0
let genderOptions: [String] = ["Male", "Female", "Other"]
...
Picker("Gender", selection: $gender) {
ForEach(0 ..< genderOptions.count) { option in
Text(self.genderOptions[option])
.tag(self.gender)
}
}
.pickerStyle(RadioPickerStyle())
...
有人能让我知道_ViewInputs
,_ViewOutputs
,_ViewListInputs
和_ViewListOutputs
是什么吗?
答案 0 :(得分:0)
使用此代码,您可以在所选变量中获得标签值。
@State private var selected : Int = 0
Picker("Gender:", selection: $selected){
Text("Male").tag(0)
Text("Female").tag(1)
Text("Male").tag(0)
}.pickerStyle(RadioPickerStyle())
Text("\(selected)")