【发布时间】:2023-02-26 09:01:56
【问题描述】:
所以我有一个背景比设备宽度宽的 ZStack,但我想把一个 VStack 放在屏幕边界内的顶部。此代码的问题在于 VStack 与 ZStack 中的其他元素一样宽。
关于如何解决这个问题的任何想法?
ZStack {
Group {
VStack {
Image("EmptyPhoto")
.resizable()
.aspectRatio(contentMode: .fill)
.edgesIgnoringSafeArea(.vertical)
.frame(height: 600)
Spacer()
}
Color.black.opacity(0.5)
.edgesIgnoringSafeArea(.vertical)
VStack {
Color.black.opacity(0.0)
Spacer()
.frame(height: 0)
LinearGradient(gradient: Gradient(colors: [Color.black.opacity(0.0), Color.black, Color.black]), startPoint: .top, endPoint: .bottom)
}
.edgesIgnoringSafeArea(.vertical)
} // Background
VStack {
Picker(selection: $filterPicker, label: EmptyView()) {
Text("Friends").tag(1)
Text("World").tag(2)
}
.pickerStyle(.segmented)
HStack {
Text("@gallapagos")
.foregroundColor(Color.white)
Spacer()
}
Spacer()
}
.padding()
}
【问题讨论】:
-
这个怎么样: ZStack{ }.frame(maxWidth: .infinity, maxHeight: .infinity)