Как заставить работать EdgeIgnoringSafeArea в SwiftUI? - PullRequest
1 голос
/ 11 июля 2020

Следующий код создает представление, в котором прямоугольник находится внизу представления. Я поставил .edgesIgnoringSafeArea (.bottom), чтобы прямоугольник полностью опустился, но это не сработало. Я имитирую это на Iphone 11 и всегда оставляю пустое место ниже.

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

введите описание изображения здесь

1 Ответ

2 голосов
/ 11 июля 2020

Прямоугольник находится внутри VStack, а VStack не игнорирует безопасную область. Даже если прямоугольник игнорирует безопасную область, он не может выходить за пределы своего родительского , чтобы заполнить весь экран.

Вы должны поставить edgesIgnoringSafeArea после VStack, а прямоугольник естественным образом заполнит VStack, следовательно, заполнит весь экран.

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