SwiftUI:在这种情况下如何将 .overlay 与 GeometryReader 一起使用?

问题描述

我知道使用 .background.overlay 来包装 GeometryReader 是很常见的,这样它就不会修改父视图,但在这种情况下我没有任何视图在要附加 vstack.background.overlay 中。我尝试使用 EmptyView 然后使用 .overlay 但我的视图消失了。

struct TestView: View {
    
    var body: some View {
        vstack {
            GeometryReader { geometry in  //how can I wrap this in a .overlay so it doesn't manipulate parent views?
                SecondView(proxy: geometry)
            }
        }
    }
    
}

解决方法

尝试 Color.clear - 它不会让您的视图消失并保持布局。

struct TestView: View {
    var body: some View {
        VStack {
            
            /// here!
            Color.clear.overlay(
                GeometryReader { geometry in  //how can I wrap this in a .overlay so it doesn't manipulate parent views?
                    SecondView(proxy: geometry)
                }
            )
        }
    }
}