swiftui - 如何使用 NavigationLink 在列表行中拥有其他可选区域?
问题描述
如果行视图中还有一个 NavigationLink,那么除了导航之外,我无法选择一行。这对 UIKit 来说没有问题。是因为目前缺乏实现而不可能,只是一个错误,还是实际上目前可能?
这可能是可以说明问题的最简单的片段。
struct ContentView: View {
var body: some View {
NavigationView {
List {
HStack {
Button("How can I tap over here without transitioning?") { }
NavigationLink( destination: ContentView() ) {
Spacer()
}
}
}
}
}
}
解决方案
您的按钮不应该是默认样式。
这是可能方法的简单演示。使用 Xcode 11.7 / iOS 13.7 准备和测试
struct ContentView: View {
@State private var selected = false
var body: some View {
NavigationView {
List {
HStack {
Button(action: { self.selected.toggle() }) {
Image(systemName: selected ? "checkmark.circle" : "circle")
}.buttonStyle(PlainButtonStyle())
.padding(.horizontal)
NavigationLink( destination: Text("Details") ) {
Text("Link")
.frame(maxWidth: .infinity, alignment: .leading)
}
}
}
}
}
}
推荐阅读
- angular - 如何在返回数组的数组中提取值 - HttpClient Service - Angular 7+
- android - Dji 导入在 jUnit 测试 Android 中生成错误
- r - R sample():不正确的概率数
- amp-html - 如何处理表单提交后返回的数据
- c - C 中的 Json 解析器 | 内存访问错误(内存转储) - 错误
- ruby-on-rails - 使用 form_tag 传输参数
- android - 我需要使用位图图像,但我不知道如何
- c# - 返回一个重复多次的字符串
- scrapy - “https://www.mywebsite.com.sg”的 Scrapy 视图和 requests.get 差异
- java - toArray 与预先确定的数组