0

我的应用中有一个带有多个子视图控制器的屏幕。在 iPhone 等较小的屏幕尺寸上,视图控制器彼此齐平放置。在 iPad 屏幕尺寸上,其中一个视图控制器浮动在另一个之上。

我想这样做,所以有时浮动的视图控制器在浮动时只有一个角半径。因此,我已经考虑在我的子视图控制器中覆盖类似viewDidLoad或的方法overrideTraitCollection(forChildViewController:),以根据其大小类是否为 wRegular、hRegular 来设置其视图的角半径,这适用于纵向或横向的 iPad。

但是,子视图控制器似乎没有设置与根视图控制器相同的大小类值,并且沿着parentViewController层次结构向上移动似乎并没有让我进入一个确实具有这些值的视图控制器。

我应该如何从子视图控制器访问视图层次结构顶部的当前大小类?

编辑: 我已经使用 UIScreen 尝试了现有的答案,当我的应用程序是唯一可见的应用程序时,它的效果很好。但是,当应用程序在分屏模式下运行时,它会导致不正确的行为——即使应用程序很窄,它也总是返回常规/常规。是否有一种解决方案涉及仅针对我的应用所在的屏幕部分获取尺寸等级?

4

1 回答 1

3

像这样(这是当前的 Swift 3):

let tc = UIScreen.main.traitCollection

现在可以查询tc.

于 2016-08-25T04:13:20.283 回答