相关疑难解决方法(0)

SwiftUI - 淡出 ScrollView

我有一个生成的超大图表,我将其放入 ScrollView 中,以便用户可以向右滚动并查看所有值。我想通过淡出 ScrollView 来向用户表明右侧有“更多内容”。通过应用 CAGradientLayer,Swift 中的某些事情变得很容易。

我的方法是应用从透明(从 80% 开始)到系统背景颜色(以 100% 结束)渐变的叠加层。结果可以看到所附的屏幕截图。

问题编号 1:看起来不像它应该看起来的样子。

问题编号 2:尽管将 -1 的 zIndex 应用到叠加层,但一旦应用叠加层,ScrollView 就不会再滚动。

知道如何实现这一目标吗?谢谢!

带有矩形覆盖层的 ScrollView

这是我的代码:

struct HealthExportPreview: View {
    @ObservedObject var carbsEntries: CarbsEntries
    
    var body: some View {
        ScrollView(.horizontal) {
            HStack {
                ForEach(0..<self.carbsEntries.carbsRegime.count, id: \.self) { index in
                    ChartBar(carbsEntries: self.carbsEntries, entry: self.carbsEntries.carbsRegime[index], requiresTimeSplitting: index == self.carbsEntries.timeSplittingAfterIndex)
                }
            }
            .padding()
            .animation(.interactiveSpring())
        }
        .overlay(Rectangle()
            .fill(
                LinearGradient(gradient: Gradient(stops: [
                    .init(color: .clear, location: 0.8),
                    .init(color: Color(UIColor.systemBackground), location: 1.0)
                ]), startPoint: .leading, endPoint: .trailing)
            )
            .zIndex(-1)
        ) …
Run Code Online (Sandbox Code Playgroud)

gradient scrollview swiftui

8
推荐指数
2
解决办法
6469
查看次数

标签 统计

gradient ×1

scrollview ×1

swiftui ×1