【问题标题】:How to deselect a selected Form (UITableView) cell - SwiftUI如何取消选择选定的表单(UITableView)单元格 - SwiftUI
【发布时间】:2020-12-16 21:51:17
【问题描述】:

我发现的一切都是我们如何在 UIKit 中做到这一点的。这是一个完全没有样式的有用扩展:

extension UITableViewCell {
    func noStyle() {
        self.selectionStyle = .none
    }
}

如何在 SwiftUI Form 中选择一个单元格并删除选定的(即仍然突出显示的)单元格,即使在我推送到新视图并返回到所选单元格的视图之后?

需要明确的是,我使用的是Form 而不是List.

这是一个例子:

 Form {
    Section(header: Text("Header"))  {
      NavigationLink(
                    destination: DetailView(user: user)) {
                    HStack {
                        Text("Cell")
                        Spacer()
                    }
                }
    }
 }

理想情况下,我可以在倒数第二个大括号上使用.selectedStyle(.none)Section.

【问题讨论】:

  • 您是否将selection: Binding<SelectionValue?>? 传递给您的列表?
  • 这不是一个列表。这是一个带有嵌入式表单的滚动视图。对不起。应该提到这一点。将更新问题。
  • 如果您需要代码方面的帮助,请提供一个可重现的最小代码示例。
  • 我从我的应用中添加了一个直接示例,替换了值本身。

标签: swift uitableview swiftui


【解决方案1】:
@State private var selected: User?

var body: some View {
    Form {
        Section(header: Text("Header"))  {
            NavigationLink(
                destination: DetailView(user: user),
                tag: user,
                selection: $selected) {
                HStack {
                    Text("Cell")
                    Spacer()
                }
            }
            .onDisappear {
                selected = nil
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 2021-08-28
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多