我正在尝试为具有常规水平大小类的iOS设备构建支持纵向和横向方向的应用程序,其余设备仅支持纵向方向。
截至本文撰写时,它将是:仅支持纵向方向(适用于iPhone 6 Plus / 6s Plus以外的iPhone),并支持纵向和横向方向(适用于iPhone 6 Plus / 6s Plus和iPad)。
这与本机邮件应用程序执行的类似行为。
我已尝试其他方法,包括以下内容:
截至本文撰写时,它将是:仅支持纵向方向(适用于iPhone 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)
}
然而,shouldAutorotate在界面旋转之前被调用,因此这发生在traitCollection被更新之前。
那么问题是,如何实现这一点?我正在尝试以最简洁的方式完成此操作,而不需要显式引用userInterfaceIdiom、屏幕大小等。