SwiftUI NavigationLink 不适用于 Spacer



我构建了以下视图:

NavigationView{

VStack(spacing: 120){

HStack{
Spacer()

NavigationLink(destination: LoginView()){
Image(systemName: "person.crop.circle")
.resizable()
.frame(width: 40, height: 40)
.foregroundColor(.primary)
.padding()
}
}
VStack{
Image("pic1")
.resizable()
.frame(width: 200, height: 160)
.padding()
Image(colorScheme == .dark ? "pic2" : "pic3")
.resizable()
.frame(width: 200, height: 65)
.padding()

}
Spacer(minLength: 250)

}

}

我需要这个间隔符(minLength:250(来获得左上角的图像(圆(。但当我这样做时,图像不能作为NavigationLink工作。当我删除这个间隔符时,所有的东西都在中心,链接就工作了。我如何才能将它放在我想要的位置并使链接工作?

使用navigationBarHidden(true):

NavigationView {

VStack(spacing: 120) {

...                
Spacer() // no need for minHeight
}
.navigationBarHidden(true) // << here
}

不确定是否已对问题进行了排序但根据你的问题,如果我理解得当,你想在点击时将Image(systemName: "person.crop.circle")放在左上角,它应该导航到新的View如果您希望图像位于右上角,则只需要更改ToolbarItem的位置我还不能发布任何图片,所以我包含了一个gif链接

这是代码,我使用ToolbarItem并在其中添加NavigationLink让我知道这是否有助于

干杯,

Jono

NavigationView{
VStack(spacing: 120){
VStack{
Image("pic1")
.resizable()
.frame(width: 200, height: 160)
.padding()
Image(colorScheme == .dark ? "pic2" : "pic3")
.resizable()
.frame(width: 200, height: 65)
.padding()

}
Spacer(minLength: 250)

}
.toolbar {
ToolbarItem(placement: .navigationBarLeading){
NavigationLink(destination: LoginView()){
Image(systemName: "person.crop.circle")
.resizable()
.frame(width: 40, height: 40)
.foregroundColor(.primary)
.padding()
}
}
}

}

相关内容

最新更新