使用 edgeIgnoringSafeArea(.all) 将图像居中

Tim*_*mmy 5 swift swiftui

我试图在屏幕内居中图像。它应该适合高度,但将宽度拉伸到屏幕外以保持比例。图像正确调整大小并正常居中,但一旦我添加.edgesIgnoringSafeArea(.all)图像就会偏离中心。我不知道这是否是一个错误,但我刚刚开始使用 SwiftUI,所以可能有一个简单的答案。

没有 .edgesIgnoringSafeArea(.all)

struct ContentView: View {
    var body: some View {
        Image("background_rain")
            .resizable()
            .aspectRatio(contentMode: .fill)
            .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

第一张图片

.edgesIgnoringSafeArea(.all)

struct ContentView: View {
    var body: some View {
        Image("background_rain")
            .resizable()
            .aspectRatio(contentMode: .fill)
            .edgesIgnoringSafeArea(.all)
            .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

第二张图片

先感谢您

Asp*_*eri 15

这是一个解决方案

    Color.clear.overlay(
      Image("background_rain")
        .resizable()
        .aspectRatio(contentMode: .fill)
    )
    .edgesIgnoringSafeArea(.all)
Run Code Online (Sandbox Code Playgroud)

演示