相关疑难解决方法(0)

如何使用 SwiftUI 单选制作列表

我正在创建单个选择列表以在我的应用程序的不同位置使用。


问题:

有没有我不知道的简单解决方案?

如果没有,我该如何完成当前的解决方案?


我的目标:

  1. 始终仅选择一项或一项或未选择一项的列表(取决于配置)
  2. 透明背景
  3. 在项目选择上 - 执行通过 init() 方法设置为参数的操作。(该操作需要所选项目信息。)
  4. 以编程方式更改列表数据并将选择重置为第一项

我当前的解决方案如下: 选择第二项的列表视图

我不能使用 Picker,因为外部操作(目标 3)很耗时。所以我认为它不会顺利进行。很可能在 SwiftUI 中有我的问题的解决方案,但是我错过了它,因为我是 swift 的新手,或者我理解并不是所有的东西都在 SwiftUI 中完美运行,例如:List 的透明背景(这就是为什么我需要清除init() 中的背景)。

所以我开始自己实现选择,并在此处停止:单击 item(Button) 时,我当前的解决方案不会更新视图。(只有出去和回到页面更新视图)。并且仍然可以选择多个项目。

import SwiftUI

struct ModuleList: View {
    var modules: [Module] = []
    @Binding var selectionKeeper: Int
    var Action: () -> Void


    init(list: [Module], selection: Binding<Int>, action: @escaping () -> Void) {
        UITableView.appearance().backgroundColor = .clear
        self.modules = list
        self._selectionKeeper = selection
        self.Action = action
    }

    var body: some View {
        List(){
            ForEach(0..<modules.count) { …
Run Code Online (Sandbox Code Playgroud)

list selection swift ios13 swiftui

11
推荐指数
4
解决办法
2万
查看次数

标签 统计

ios13 ×1

list ×1

selection ×1

swift ×1

swiftui ×1