Я пытаюсь показать изображение позади lo go в моем приложении. Все работает как положено в окне предварительного просмотра. Когда я запускаю приложение на симуляторе или переключаюсь в режим Live Preview, оно идеально подходит для всех устройств, кроме iPhone 8 Plus, 11 Pro и 11 Pro Max, в этом случае изображение просто не отображается, и вместо этого я получаю черный или белый фон на основе устройства, установленного в светлый или темный режим.
Вот код для основного вида:
struct MainView: View {
// A reference to the DeviceInformation EnvironmentObject used to access properties such as the device width and height.
@EnvironmentObject var deviceInfo: DeviceInformation
var body: some View {
GeometryReader { geometry in
ZStack {
BackgroundImage(needsOffset: false) // needsOffset is used in case the background image has to be moved in the x-axis in order to better frame the logo
VStack {
Spacer()
Image("Logo")
.resizable()
.scaledToFit()
.frame(width: self.deviceInfo.screenWidth * 0.6)
Spacer()
FieldsCard()
}
}
.edgesIgnoringSafeArea(.all)
}
}
}
А вот как выглядит BackgroundImage ():
struct BackgroundImage: View {
let needsOffset: Bool
var body: some View {
Image("WelcomeScreenBackground")
.resizable()
.aspectRatio(contentMode: .fill)
.edgesIgnoringSafeArea(.all)
.frame(
minWidth: 0,
maxWidth: .infinity,
minHeight: 0,
maxHeight: .infinity
)
.offset(x: needsOffset ? -30 : 0) // Offsets the image on the x-axis to better frame the logo
}
}
Я уже пытался использовать BackgroundImage () в качестве .background на VStack вместо ZStack, но это тоже не работает. Я получаю точно такие же результаты. Я также попытался разместить только изображение с фоновым изображением внутри тела MainView, и изображение также не отображается.
Интересно, это какая-то ошибка в Xcode или Simulator, или я Я просто делаю что-то тупое. Любая помощь будет принята с благодарностью!