Swiftui 无法从此VStack中删除不需要的空间
我真的不知道是什么把我的Detail-HStack视图推到了页面底部。我尝试过添加间隔和其他调整,但没有成功。您将在下面找到完整的代码,它可以按原样编译Swiftui 无法从此VStack中删除不需要的空间,swiftui,Swiftui,我真的不知道是什么把我的Detail-HStack视图推到了页面底部。我尝试过添加间隔和其他调整,但没有成功。您将在下面找到完整的代码,它可以按原样编译 import SwiftUI struct ContentView: View { var body: some View { GeometryReader { geo in VStack() { VideoPlayerView()
import SwiftUI
struct ContentView: View {
var body: some View {
GeometryReader { geo in
VStack() {
VideoPlayerView()
.frame(width: geo.size.width, alignment: .center)
CategoryScrollView()
Spacer()
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct CategoryScrollView: View {
var body: some View {
HStack {
VStack {
Text("Category")
.font(.system(size: 30))
}
Divider()
VStack {
Text("Chapter")
.font(.system(size: 30))
}
Divider()
VStack {
Text("Lesson")
.font(.system(size: 30))
}
}.frame(height: 100)
}
}
struct CategoryScrollView_Previews: PreviewProvider {
static var previews: some View {
CategoryScrollView()
}
}
struct VideoPlayerView: View {
var body: some View {
GeometryReader { geo in
ZStack(alignment: .center) {
Rectangle()
.frame(height: geo.size.width / 1.4)
.cornerRadius(50)
Image(systemName: "play.fill")
.resizable()
.foregroundColor(.blue)
.frame(width: geo.size.width / 5,height: geo.size.width / 4)
}
}
}
}
struct VideoPlayerView_Previews: PreviewProvider {
static var previews: some View {
VideoPlayerView()
}
}
如果不受约束,GeometryReader将占用所有可用空间
您还需要设置VideoPlayerView的高度:
此外,还可以从CategoryScrollView中删除frameheight:100:
如有必要,可以在父视图中使用GeometryReader而不是硬编码值来指定该值。如果不受约束,GeometryReader将占用所有可用空间
您还需要设置VideoPlayerView的高度:
此外,还可以从CategoryScrollView中删除frameheight:100:
如有必要,您可以在父视图中使用GeometryReader而不是硬编码值指定此帧。我会将此帧添加到GeometryReader
GeometryReader { geo in
VStack() {
VideoPlayerView()
.frame(width: geo.size.width, alignment: .center)
CategoryScrollView()
Spacer()
}.frame(maxHeight:geo.size.height/2)
}
我会将此框架添加到GeometryReader
GeometryReader { geo in
VStack() {
VideoPlayerView()
.frame(width: geo.size.width, alignment: .center)
CategoryScrollView()
Spacer()
}.frame(maxHeight:geo.size.height/2)
}
GeometryReader { geo in
VStack() {
VideoPlayerView()
.frame(width: geo.size.width, alignment: .center)
CategoryScrollView()
Spacer()
}.frame(maxHeight:geo.size.height/2)
}