mhe*_*gon 2 landscape portrait ipad size-classes swiftui
我需要在横向和纵向上为 iPad 制作不同的布局,但 iPad 上的尺寸类别始终是常规/常规。Apple 推荐的调整界面的方法是使用具有尺寸类别的自适应布局,但在 iPad 上,纵向和横向模式没有区别。
有没有办法在iPad上呈现不同的纵向和横向布局而不检测设备方向?
例如,在 iPhone(紧凑/常规)上将显示为:
因此,我们的目标是在 iPad 处于纵向模式时显示 iPhone 布局。
谢谢!
您可以根据方向强制应用水平尺寸类别。如果我正确理解了你的目标,这里是一个可能方法的演示(使用 Xcode 12.1 / iOS 14.1 进行测试):
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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |