ios - SwiftUI:fullScreenCover 的半透明背景

标签 ios swift swiftui

所以从技术上讲,我想显示一个加载屏幕 View 。我正在使用 fullScreenCover .

struct ContentView: View {
    
    @State private var isLoading = false
        
    var body: some View {
        VStack {
            Text("Hello there")
            Button("Start loading") {
                isLoading.toggle()
            }
            .fullScreenCover(isPresented: $isLoading) {
                ZStack{
                    Color.black.opacity(0.5).edgesIgnoringSafeArea(.all)
                    VStack {
                        ProgressView()
                        Button("Stop loading") {
                            isLoading.toggle()
                        }
                    }
                }
            }
        }
    }
}
问题是我不能使这个加载屏幕半透明。 sheetpopover行为方式相同。

最佳答案

这是可能方式的演示。您可以根据需要调整视觉效果参数。
使用 Xcode 12/iOS 14 测试。

       // ... other code
            .fullScreenCover(isPresented: $isLoading) {
                ZStack{
                    Color.black.opacity(0.5).edgesIgnoringSafeArea(.all)
                    VStack {
                        ProgressView()
                        Button("Stop loading") {
                            isLoading.toggle()
                        }
                    }
                }
                .background(BackgroundBlurView())
            }
        }
    }
}

struct BackgroundBlurView: UIViewRepresentable {
    func makeUIView(context: Context) -> UIView {
        let view = UIVisualEffectView(effect: UIBlurEffect(style: .light))
        DispatchQueue.main.async {
            view.superview?.superview?.backgroundColor = .clear
        }
        return view
    }

    func updateUIView(_ uiView: UIView, context: Context) {}
}
backup

关于ios - SwiftUI:fullScreenCover 的半透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301041/

相关文章:

ios - Xcode 6.3.2 无法在 OSX 10.11 El Capitan Developer Preview 3 上运行

ios - 为什么保留循环会泄漏内存?

ios - 如何在 QuickBlox 中通话期间截取正在进行的视频的屏幕截图

list - SwiftUI - List/ForEach 与 NavigationLink 和 isActive 结合使用无法正常工作

swiftui - 为什么在 AppDelegate 中更新 @State 不起作用?

ios - 仅在 iPhone 上锁定方向

objective-c - 哪种方式存储数据(图像)? NSData、字符串或可转换

ios - UICollectionView : Support for reordering on iOS 8

ios - 应用更新 CoreData 保存了吗?

swiftui - 在 SwiftUI 中同时流畅地动画文本随偏移量的变化