【发布时间】:2016-03-30 09:06:29
【问题描述】:
我正在尝试为具有常规水平尺寸等级的 iOS 设备构建一个支持纵向和横向方向的应用程序,并且仅支持其余设备的纵向。
在撰写本文时,它将是:仅纵向(适用于除 6 Plus/6s Plus 之外的 iPhone)以及适用于 iPhone 6 Plus/6s Plus 和 iPad 的纵向和横向。
这是本机邮件应用程序执行的类似行为。
我已经尝试了以下方法:
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return [.Portrait, .LandscapeLeft, .LandscapeRight]
}
override func shouldAutorotate() -> Bool {
return (traitCollection.horizontalSizeClass == .Regular)
}
然而,shouldAutororate 显然是在界面旋转之前调用的,所以这发生在 traitCollection 更新之前。
那么,问题是,如何做到这一点?我正在尝试以最简洁的方式完成此操作,而无需明确引用 userInterfaceIdiom、屏幕尺寸等。
【问题讨论】:
-
您找到解决方案了吗?我也对这个感兴趣!