SwiftUI的SizeClass

所属分类:ios | 发布于 2024-12-04 12:25:27

之前发过一篇SwiftUI根据横竖屏自动切换布局结构的文章,现在做相机应用发现情况更复杂,使用UIDeviceOrientation不能满足需求,所以必须要研究SizeClass。

UIDeviceOrientation不能满足的原因是,相机应用会把app的iPhone Orientation设置为仅Portrait。

 

SwiftUI为我们提供了两个环境值来监视我们应用程序的当前大小类别,这在实践中意味着我们可以在空间受限时显示一个布局,在空间充足时显示另一个布局。

verticalSizeClass:提示垂直方向(高度)是常规的还是紧凑的

horizontalSizeClass:提示水平方向(宽度)是常规的还是紧凑的

SizeClass根据屏幕显示区域的宽松程度分为两类:

常规:Regular

紧凑:Compact

大致分类

所有的iPhone在横屏模式下都有compact width和regular height。

大部分iPhone在横屏模式下使用的是compact width和compact height。

大号iPhone(Plus-sized 和 Max devices)在横屏模式下使用的是regular width 和 compact height。

所有的iPad在横竖屏模式下都适用的是regular width和regual height。

有一种特殊情况就是当在iPad中使用了分屏模式时,SizeClass根据当前iPad的型号来确定,这里暂时忽略。

 

 

文哥博客(https://wenge365.com)属于文野个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接