小编Ulr*_*ich的帖子

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
查看次数

SwiftUI - @State 属性未更新

自从更新到 Xcode 12 / iOS 14 以来,我遇到了一些奇怪的行为。为了验证此行为,我在测试应用程序中将其隔离。

在我原来的应用程序中,我有多个Sheet要控制的。这就是为什么我必须enum区分当前活动的工作表并将其存储在@State private var activeSheet. 在@ViewBuilder函数中sheetContent(),我返回View所选的Sheet.

对于这个测试应用程序,出于简单原因,我只实现了一张表。

这是 的ContentView代码:

struct ContentView: View {
    @State private var showingSheet = false
    @State private var activeSheet = ContentViewSheets.State.none
    var body: some View {
        Button(action: {
            activeSheet = .aSheet
            showingSheet = true     // <-- ISSUE: activeSheet is still set to .none here!
        }) {
            Text("Open Sheet")
        }
        .sheet(isPresented: $showingSheet, content: sheetContent)
    } …
Run Code Online (Sandbox Code Playgroud)

swiftui

4
推荐指数
1
解决办法
490
查看次数

标签 统计

swiftui ×2

gradient ×1

scrollview ×1