如何检查设备方向从纵向更改为横向和iPad中的反之亦然

Swa*_*bhu 6 orientation screen-orientation ipad ios swift

我有一个拆分视图控制器,我在其中提出一个弹出窗口.现在,当设备方向从横向变为纵向时,我必须运行一段代码,如果它从纵向变为横向,我必须运行另一段代码.如何在Swift中实现这一点.

iVa*_*run 18

已更新至Swift 4:在以下代码中添加以下代码ViewDidLoad:

NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name:  Notification.Name("UIDeviceOrientationDidChangeNotification"), object: nil)
Run Code Online (Sandbox Code Playgroud)

然后,创建一个如下所示的函数

@objc func orientationChanged() {

    if(UIDeviceOrientationIsLandscape(UIDevice.current.orientation)){

        print("landscape")
    }

    if(UIDeviceOrientationIsPortrait(UIDevice.current.orientation)){

        print("Portrait")
    }

}
Run Code Online (Sandbox Code Playgroud)

希望这会对你有所帮助:)


Sur*_*put 1

从 iOS 8.0 开始,您可以使用以下方法检测方向变化。

在 Objective-C 中

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
Run Code Online (Sandbox Code Playgroud)

迅速

func viewWillTransitionToSize(_ size: CGSize,
    withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
Run Code Online (Sandbox Code Playgroud)

从尺寸上就可以知道。