ios - 如何使用自定义 PickerStyle 创建单选按钮组?
问题描述
PickerStyle 提供 WheelPickerStyle、SegmentedPickerStyle 等。我想自定义它创建一个单选按钮,一次只能选择一个。
我是 Android 开发人员,对 swift 非常陌生。我正在使用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
解决方案
使用此代码,您可以在所选变量中获得标签值。
@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)")
推荐阅读
- python - 我如何在循环之外运行其余代码
- javascript - 如何使用 php 编写一个 txt 文件,其中变量是从 Javascript 获取的
- php - 在按钮单击 PHP 上使用 AJAX 过滤器更新 get_terms foreach 循环
- swift - 你将如何修复 Xcode Firebase 与 SwiftUI 的集成说:格式:@“`[FIRApp 配置];`(Swift 中的`FirebaseApp.configure()`)找不到“
- reactjs - 使用画布绘制图像时如何更改svg图标颜色
- java - 如何使用 InputStream 或 DataInputStream 读取带有 System.in 的字符串
- azure-web-app-service - 在 Azure Web 服务(窗口容器)上托管 Laravel 8 -> 无法在 wwwroot 中写入
- r - 在 R tidyverse 中将 map_dbl 输出转换为 tibble
- powerdesigner - 如何以编程方式更改 PowerDesigner 16 PDM 图表中列的颜色
- node.js - 使用 SSH 密钥从 docker 内部的私有存储库安装 npm 模块