在iOS中支持horizontalSizeClass = .Regular的横向方向布局。

5
我正在尝试为具有常规水平大小类的iOS设备构建支持纵向和横向方向的应用程序,其余设备仅支持纵向方向。
截至本文撰写时,它将是:仅支持纵向方向(适用于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、屏幕大小等。


你有没有找到解决方案?我也很感兴趣! - Whakkee
1个回答

2
override var supportedInterfaceOrientations:UIInterfaceOrientationMask{

    return [.portrait, .landscapeLeft, .landscapeRight]

}

override var shouldAutorotate:Bool {

    return (traitCollection.horizontalSizeClass == .regular) || (traitCollection.displayScale > 2);

}

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Whakkee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接