如何避免父级ScrollView剪辑内部ScrollView?

时间:2020-04-11 13:47:07

标签: swift swiftui

当水平子级ScrollView嵌套在垂直父级ScrollView内时,父级ScrollView会裁剪内部元素。 当前(Xcode 11.4)是否可以更改此行为? clipped when nested

当不嵌套ScrollView时,它可以按预期工作。 (注释了父母) 红色元素绘制在SafeArea上。

not clipped when nested

1 个答案:

答案 0 :(得分:0)

这里是可以考虑的方法。

但是有一个缺点-SwiftUI中似乎有错误,更改为纵向水平滚动视图的方向具有意外的偏移量(内部,因为通过边框,所有外部都可以)。我还没有找到解决方法,但是...无论如何

通过Xcode 11.4 / iOS 13.4测试

demo

    var body: some View {
        GeometryReader { gp in
            ScrollView(showsIndicators: true) {
                VStack {
                    ForEach(0..<3) { i in
                        ScrollView(.horizontal, showsIndicators: true) {
                            HStack {
                                ForEach(0..<10) { j in
                                    Color.red.frame(width: 100, height: 100)
                                }
                            }
                        }.background(Color.blue)
                    }
                }.frame(width: gp.size.width)
            }.background(Color.green)
        }.edgesIgnoringSafeArea(.horizontal)
    }