Я играю с SwiftUI и пытаюсь получить правильный размер экрана в зависимости от ориентации. Решение отлично работает в симуляторе на iPhone, но отсутствует на iPad (у меня нет iPad для реального тестирования). Кажется, на iPad просто отсутствует событие перерисовки. Есть ли ошибка в SwiftUI или мне нужно было добавить код?
struct ContentView: View {
@Environment(\.layoutDirection) var layoutDir
// verticalSizeClass initiate redrawing UI based on new direction (horSizeClass won't work)
@Environment(\.verticalSizeClass) var vertSizeClass
var body: some View {
VStack{
Text("UIDevice.current.orientation").font(.title)
if UIDevice.current.orientation.isPortrait {
Text("Portrait")
} else if UIDevice.current.orientation.isLandscape {
Text("Landscape")
} else if UIDevice.current.orientation.isFlat {
Text("is Flat")
}
Text("UIScreen.main.bounds").font(.title)
Text("Width:\(UIScreen.main.bounds.width)")
Text("Height:\(UIScreen.main.bounds.height)")
Text("@Environment(\\.horizontalSizeClass").font(.title)
if vertSizeClass == .regular {
Text("regular")
} else if vertSizeClass == .compact {
Text("compact")
} else {
Text("default")
}
}
}
}