首页 > 解决方案 > 当在它上面有一个视图时,我不能让滚动视图滚动

问题描述

在 SwiftUI 中,如何通过在其顶部放置一个视图来让滚动视图可滚动?

所以基本上,我有一个ZStack包含 aScrollView的 a View。两者都在消耗ZStack.

在这种情况下,View位于ZStack. View还包含比方说在某些区域Button添加的 a 和 an 。TapGesture

我将如何允许ScrollView仍然可以滚动通过View

感谢您对此的任何帮助!

一些代码来说明,虽然不完整。

var body: some View {
    ZStack {
        ScrollView {
            SomeCell() // Looped
        }
        HUD() // The view talked above
    }
}

标签: swiftswiftuiswiftui-list

解决方案


根据这篇文章,这是一个已知的 SwiftUI 错误。我也遇到了同样的问题,我不相信有原生的 SwiftUI 解决方案。你可能不得不依赖 UIViewRepresentable。

对于我的用例,我只希望滚动视图的水平边缘具有“褪色”外观,我可以通过使用蒙版而不是覆盖来完成,但我不确定这是否对您的情况有所帮助。

ScrollView {
   Text("Hello")
}.mask(
    LinearGradient(gradient: Gradient(colors: [
                                Colors.background.opacity(0),
                                Colors.background.opacity(1),
                                Colors.background.opacity(0)
                            ]),
                            startPoint: .leading,
                            endPoint: .trailing
                        )
                    )

推荐阅读