我有一个生成的超大图表,我将其放入 ScrollView 中,以便用户可以向右滚动并查看所有值。我想通过淡出 ScrollView 来向用户表明右侧有“更多内容”。通过应用 CAGradientLayer,Swift 中的某些事情变得很容易。
我的方法是应用从透明(从 80% 开始)到系统背景颜色(以 100% 结束)渐变的叠加层。结果可以看到所附的屏幕截图。
问题编号 1:看起来不像它应该看起来的样子。
问题编号 2:尽管将 -1 的 zIndex 应用到叠加层,但一旦应用叠加层,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)