Swiftui 迅捷导航问题';集团';不解决
环境:Xcode 11.1在Catalina(19A573a)上运行,并构建仅限iOS的应用程序 我有以下代码,应该相当简单。 -我有按钮A-H(8个按钮) -当我点击一个按钮时,我希望看到相应的视图(“视图a”、“视图B”等),因为它们嵌入在NavigationView中 我遇到了几个问题 -在显示代码的情况下,点击“视图A”的按钮除了其他按钮外什么也不做。 -在重新运行几次后,点击按钮a会工作几次,但大部分时间失败 -如果我禁用除按钮A外的所有按钮的显示,点击按钮A可以工作。 -如果我禁用任何单个按钮的显示(同样有8个按钮,A-H),则点击第一个按钮即可Swiftui 迅捷导航问题';集团';不解决,swiftui,navigationview,navigationlink,Swiftui,Navigationview,Navigationlink,环境:Xcode 11.1在Catalina(19A573a)上运行,并构建仅限iOS的应用程序 我有以下代码,应该相当简单。 -我有按钮A-H(8个按钮) -当我点击一个按钮时,我希望看到相应的视图(“视图a”、“视图B”等),因为它们嵌入在NavigationView中 我遇到了几个问题 -在显示代码的情况下,点击“视图A”的按钮除了其他按钮外什么也不做。 -在重新运行几次后,点击按钮a会工作几次,但大部分时间失败 -如果我禁用除按钮A外的所有按钮的显示,点击按钮A可以工作。 -如果我禁用任
- 我知道VStack中有超过10个视图的技术限制,我尝试了这里提出的建议: 但这是行不通的
- 我尝试过将按钮放入列表中的各种方法,但都不起作用
打开“调试视图层次结构”时,您会注意到视图A被不可见的导航栏完全阻挡,即使它不可见,也会阻止所有触摸到达视图A
打开“调试视图层次结构”时,您会注意到视图A被不可见的导航栏完全阻挡,即使它不可见,也会阻止所有触摸到达视图A
你不会喜欢这种情况-我当然不喜欢-但是(1)我可以验证这种行为在物理iPhone和iPad设备上都存在,并且(2)使用
组,以不同的方式使用,或者重新排列按钮顺序无关紧要。。。不管怎样,第一个按钮都无法导航到正确的链接。你猜怎么着?有一种方法是有效的-删除基本按钮
中的填充
修饰符。是的,这对我来说完全没有意义……我之所以发现这一点,是因为在运行iOS 13.1的iPhone7 Plus上,顶部的按钮对齐得太高了。(我甚至尝试先更改边框高度,但这只会使按钮之间的“填充”变大。你不会喜欢这种情况-我当然不会-但是(1)我可以验证物理iPhone和iPad设备上是否存在这种行为,以及(2)使用分组
,以不同的方式使用,或者重新排列按钮顺序都不重要…不管怎样,第一个按钮都无法导航到正确的链接。猜猜怎么着?有一点很有效-删除基本按钮
中的填充
修饰符。是的,这对我来说完全没有意义…我只是想这是因为在我运行iOS 13.1的iPhone7 Plus上,顶部的按钮对齐得太高了(我甚至尝试先更改边框高度,但这只会使按钮之间的“填充”变大)。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
HStack {
Spacer()
VStack {
Spacer()
Group {
NavigationLink(destination: ViewA()) {
BasicButton(buttonName: "View A", buttonColor: .orange)
}
NavigationLink(destination: ViewB()) {
BasicButton(buttonName: "View B", buttonColor: .red)
}
NavigationLink(destination: ViewC()) {
BasicButton(buttonName: "View C", buttonColor: .green)
}
NavigationLink(destination: ViewD()) {
BasicButton(buttonName: "View D", buttonColor: .blue)
}
}
Group {
NavigationLink(destination: ViewE()) {
BasicButton(buttonName: "View E", buttonColor: .pink)
}
NavigationLink(destination: ViewF()) {
BasicButton(buttonName: "View F", buttonColor: .gray)
}
NavigationLink(destination: ViewG()) {
BasicButton(buttonName: "View G", buttonColor: .purple)
}
NavigationLink(destination: ViewH()) {
BasicButton(buttonName: "View H", buttonColor: .yellow)
}
}
Spacer()
}
Spacer()
}
.background(Color.black).edgesIgnoringSafeArea(.all)
}
}
}
struct BasicButton: View {
var buttonName: String
var buttonColor: Color
var body: some View {
Text(buttonName)
.font(.title)
.multilineTextAlignment(.center)
.foregroundColor(.white)
.frame(width: 300, height: 60)
.background(buttonColor)
.cornerRadius(5)
.padding()
}
}
struct ViewA: View {
var body: some View {
Text("View A").font(.largeTitle)
}
}
struct ViewB: View {
var body: some View {
Text("View B").font(.largeTitle)
}
}
struct ViewC: View {
var body: some View {
Text("View C").font(.largeTitle)
}
}
struct ViewD: View {
var body: some View {
Text("View D").font(.largeTitle)
}
}
struct ViewE: View {
var body: some View {
Text("View E").font(.largeTitle)
}
}
struct ViewF: View {
var body: some View {
Text("View F").font(.largeTitle)
}
}
struct ViewG: View {
var body: some View {
Text("View G").font(.largeTitle)
}
}
struct ViewH: View {
var body: some View {
Text("View H").font(.largeTitle)
}
}