Ios 带有PageTabViewStyle()的TabView未使用ScrollView中的可用高度
所以我有一个如下所示的选项卡视图,但当我试图在ScrollView中实现它时,我总是要给它一个固定的高度。有没有办法告诉选项卡视图在scrollView中使用它需要的空间?我不知道TabView的内部内容的高度(顺便说一句,它会随着时间的推移而变化),所以固定的高度对我来说不合适 我尝试了.frame(maxHeight:.infinity),但似乎不起作用Ios 带有PageTabViewStyle()的TabView未使用ScrollView中的可用高度,ios,xcode,swiftui,swiftui-tabview,swiftui-scrollview,Ios,Xcode,Swiftui,Swiftui Tabview,Swiftui Scrollview,所以我有一个如下所示的选项卡视图,但当我试图在ScrollView中实现它时,我总是要给它一个固定的高度。有没有办法告诉选项卡视图在scrollView中使用它需要的空间?我不知道TabView的内部内容的高度(顺便说一句,它会随着时间的推移而变化),所以固定的高度对我来说不合适 我尝试了.frame(maxHeight:.infinity),但似乎不起作用 导入快捷界面 结构测试:视图{ var body:一些观点{ 滚动视图{ TabView{ 文本(“你好,世界”) } .tabViewS
导入快捷界面
结构测试:视图{
var body:一些观点{
滚动视图{
TabView{
文本(“你好,世界”)
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode:.never))
.frame(最大高度:。无穷大)
//只有具有固定高度的.frame()可以工作。。。
}
}
}
您需要使用一个固定的高度,比如屏幕高度,因为scrollview的高度是无限的。因此,当您在scrollview内的对象上设置一个无限高时,它只占用内容真正需要的空间。我建议您在TabView上使用如下屏幕高度:
struct MyView: View {
var body: some View {
GeometryReader { proxy in
ScrollView {
TabView {
Text("Hello World")
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.frame(height: proxy.size.height)
}
}
}
}
.frame(高度:UIScreen.main.bounds.height)
或者使用GeometryReader,提供ScrollView获取的高度,然后将其应用于选项卡视图框架,如下所示:
struct MyView: View {
var body: some View {
GeometryReader { proxy in
ScrollView {
TabView {
Text("Hello World")
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.frame(height: proxy.size.height)
}
}
}
}
即使你的问题很久以前就被问到了,我想你找到了解决问题的办法,但我认为这个回答对遇到这个问题的其他人有帮助。