Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带有PageTabViewStyle()的TabView未使用ScrollView中的可用高度_Ios_Xcode_Swiftui_Swiftui Tabview_Swiftui Scrollview - Fatal编程技术网

Ios 带有PageTabViewStyle()的TabView未使用ScrollView中的可用高度

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

所以我有一个如下所示的选项卡视图,但当我试图在ScrollView中实现它时,我总是要给它一个固定的高度。有没有办法告诉选项卡视图在scrollView中使用它需要的空间?我不知道TabView的内部内容的高度(顺便说一句,它会随着时间的推移而变化),所以固定的高度对我来说不合适

我尝试了.frame(maxHeight:.infinity),但似乎不起作用

导入快捷界面
结构测试:视图{
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)
                }
            }
    
        }
}
即使你的问题很久以前就被问到了,我想你找到了解决问题的办法,但我认为这个回答对遇到这个问题的其他人有帮助。