如何避免父 ScrollView 剪辑内部 ScrollView? [英] How to avoid parent ScrollView to clip internal ScrollView?

查看:34
本文介绍了如何避免父 ScrollView 剪辑内部 ScrollView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当水平子滚动视图嵌套在垂直父滚动视图中时,内部元素被父滚动视图裁剪.目前(Xcode 11.4)有没有办法改变这种行为?

When a horizontal child ScrollView is nested inside a vertical parent ScrollView, internal element is clipped by parent ScrollView. Is there currently (Xcode 11.4) a way to change this behavior?

当 ScrollView 未嵌套时,它按预期工作.(注释掉父母)红色元素绘制在 SafeArea 上.

It's works as expected when ScrollView is not nested. (commented out the parent) Red element is drawn over SafeArea.

推荐答案

这里是可以考虑的方法.

Here is possible approach to consider.

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

使用 Xcode 11.4/iOS 13.4 测试

Tested with Xcode 11.4 / iOS 13.4

    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)
    }

这篇关于如何避免父 ScrollView 剪辑内部 ScrollView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆