SwiftUI-在iPad上处理常规/常规大小的课程
我需要在横向和纵向上为iPad做一个不同的布局,但iPad上的尺寸等级总是常规的。苹果公司推荐的调整界面的方法是使用尺寸等级的自适应布局,但在iPad上,纵向和横向模式并没有区别 有没有办法在没有检测设备定向的情况下,在iPad上显示纵向和横向的不同布局 例如,在iPhone上(紧凑型/常规型)显示如下: 在iPad上,横向(常规/常规)显示如下: 因此,我们的目标是在iPad处于纵向模式时显示iPhone的布局SwiftUI-在iPad上处理常规/常规大小的课程,ipad,swiftui,landscape,size-classes,portrait,Ipad,Swiftui,Landscape,Size Classes,Portrait,我需要在横向和纵向上为iPad做一个不同的布局,但iPad上的尺寸等级总是常规的。苹果公司推荐的调整界面的方法是使用尺寸等级的自适应布局,但在iPad上,纵向和横向模式并没有区别 有没有办法在没有检测设备定向的情况下,在iPad上显示纵向和横向的不同布局 例如,在iPhone上(紧凑型/常规型)显示如下: 在iPad上,横向(常规/常规)显示如下: 因此,我们的目标是在iPad处于纵向模式时显示iPhone的布局 谢谢 您可以根据方向强制应用水平尺寸等级。如果我正确理解了您的目标,这里是一个
谢谢 您可以根据方向强制应用水平尺寸等级。如果我正确理解了您的目标,这里是一个可能方法的演示(使用Xcode 12.1/iOS 14.1进行测试):
苹果建议在iPad上使用相同的纵向和横向布局
struct DemoViewSizes: View {
@Environment(\.horizontalSizeClass) var horizontalSizeClass
@State private var orientation = UIDevice.current.orientation
var body: some View {
Text("root_view_here")
.onReceive(NotificationCenter.default.publisher(for: UIDevice.orientationDidChangeNotification)) { _ in
orientation = UIDevice.current.orientation
}
.environment(\.horizontalSizeClass, orientation == .portrait ? .compact : .regular)
}
}