【发布时间】:2016-04-13 07:41:03
【问题描述】:
我有一个拆分视图控制器,我在其中展示了一个弹出框。现在,当设备方向从横向变为纵向时,我必须运行一段代码,如果它从纵向变为横向,我必须运行另一段代码。如何在 Swift 中实现这一点。
【问题讨论】:
标签: ios swift ipad orientation screen-orientation
我有一个拆分视图控制器,我在其中展示了一个弹出框。现在,当设备方向从横向变为纵向时,我必须运行一段代码,如果它从纵向变为横向,我必须运行另一段代码。如何在 Swift 中实现这一点。
【问题讨论】:
标签: ios swift ipad orientation screen-orientation
更新到 Swift 4:
在ViewDidLoad中添加以下代码:
NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name: Notification.Name("UIDeviceOrientationDidChangeNotification"), object: nil)
然后,创建一个如下所示的函数
@objc func orientationChanged() {
if(UIDeviceOrientationIsLandscape(UIDevice.current.orientation)){
print("landscape")
}
if(UIDeviceOrientationIsPortrait(UIDevice.current.orientation)){
print("Portrait")
}
}
希望对你有帮助:)
【讨论】:
从 iOS 8.0 开始,您可以使用以下方法检测方向变化。
在objective-c中
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
迅速
func viewWillTransitionToSize(_ size: CGSize,
withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
你可以从尺寸上找出来。
【讨论】: