iOS:启动时的尺寸 类 和设备方向
iOS: Size classes and device orientation at launch
这是我的问题:将 iPhone 6 Plus 或 iPad 旋转为例如LandscapeLeft
.
假设您的应用具有以下代码(仅作为示例)
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
// mine does use All, but with this case you'll understand my question
}
在
时如何检测设备应该使用垂直布局还是水平布局
func willTransitionToTraitCollection(newCollection: UITraitCollection, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
叫什么?
print(UIScreen.mainScreen().bounds.width < UIScreen.mainScreen().bounds.height)
// will return false, because we started in landscape but the layout will be forced to be vertical here
print(UIApplication.sharedApplication().statusBarOrientation == .LandscapeLeft)
// will return true, because we started in landscape but the layout will be forced to be vertical here
主要问题出现在iPad,因为两个尺寸类都是regular
。
我很困惑,不知道如何解决这个问题。
不要认为您的布局是垂直和水平的。只需让应用旋转,并响应尺寸 class 或尺寸变化。
在 iPad 上,尽量避免使用两种布局。只需使用自动版式自动调整比例。但是,如果您 必须 响应 iPad 上的旋转,则响应 viewWillTransitionToSize
(因为特征集合不会更改)。
这是我的问题:将 iPhone 6 Plus 或 iPad 旋转为例如LandscapeLeft
.
假设您的应用具有以下代码(仅作为示例)
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
// mine does use All, but with this case you'll understand my question
}
在
时如何检测设备应该使用垂直布局还是水平布局func willTransitionToTraitCollection(newCollection: UITraitCollection, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
叫什么?
print(UIScreen.mainScreen().bounds.width < UIScreen.mainScreen().bounds.height)
// will return false, because we started in landscape but the layout will be forced to be vertical here
print(UIApplication.sharedApplication().statusBarOrientation == .LandscapeLeft)
// will return true, because we started in landscape but the layout will be forced to be vertical here
主要问题出现在iPad,因为两个尺寸类都是regular
。
我很困惑,不知道如何解决这个问题。
不要认为您的布局是垂直和水平的。只需让应用旋转,并响应尺寸 class 或尺寸变化。
在 iPad 上,尽量避免使用两种布局。只需使用自动版式自动调整比例。但是,如果您 必须 响应 iPad 上的旋转,则响应 viewWillTransitionToSize
(因为特征集合不会更改)。