如何在swiftUI中使edgeIgnoringSafeArea工作?

时间:2020-07-10 21:26:13

标签: swift swiftui

以下代码创建一个视图,其中矩形位于视图的底部。我放了.edgesIgnoringSafeArea(.bottom),所以矩形一直向下延伸,但是不起作用。我在Iphone 11上对此进行了模拟,并且始终在下面留有空白。

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                List {
                    Text("Hello, World!")
                }
                
                Spacer()
                
                Rectangle()
                    .frame(height: 150)
                    .edgesIgnoringSafeArea(.bottom)
            }
        }
    }
}

enter image description here

1 个答案:

答案 0 :(得分:3)

矩形位于VStack内,VStack不会忽略安全区域。即使矩形忽略了安全区域,它也不能扩展到其父级以填充整个屏幕。

您应该将edgesIgnoringSafeArea放在VStack之后,矩形自然会填充VStack,从而填充整个屏幕。

var body: some View {
    NavigationView {
        VStack {
            List {
                Text("Hello, World!")
            }
            
            Spacer()
            
            Rectangle()
                .frame(height: 150)
        }
        .edgesIgnoringSafeArea(.bottom)
    }
}