Swift:如何使viewWillTransition仅影响风景中的iphone

时间:2017-01-20 13:52:25

标签: ios swift

我一直在努力使视图转换只会返回一些东西,如果设备是横向模式的iphone,使用以下代码:

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
 super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
coordinator.animateAlongsideTransition(nil, completion: {
    _ in

    return x
})
}

我无法看到如果设备是横向模式的iphone,或者有不同的方法可以执行此代码,如何才能执行此代码。

2 个答案:

答案 0 :(得分:0)

在您的功能中,您只需使用http://myurl.com/Account/LogOn即可查看设备习语。

let isPhone: Bool = UIDevice.current.userInterfaceIdiom == .phone

此外,使用UIKit的相同UIDevice API,您可以查看Apple's provided UIKit APIs (under UIDevice)

let isLandscape: Bool = UIDevice.current.orientation.isLandscape

对于您的示例,您可以执行以下操作:

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)

    if isPhone && isLandscape {
        coordinator.animateAlongsideTransition(nil, completion: { _ in

        })
    }
}

答案 1 :(得分:0)

你可以通过这种方式检查它是否是iPhone:

let isPhone: Bool = UIDevice.current.userInterfaceIdiom == .phone

您可以使用以下方式获取屏幕方向:

let isLandscape: Bool = UIDevice.current.orientation.isLandscape

所以,只有当它是横向模式的手机时才能做某事:

if isPhone && isLandscape {

}