iOS- iPad的ViewWillTransition中错误的Uiscreen界限



我必须检查我的设备是否在iOS 8 中更改了方向。

我的方法是:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    let isLand = UIScreen.main.bounds.width > UIScreen.main.bounds.height
    coordinator.animate(alongsideTransition: nil) { _ in
        let isLand2 = UIScreen.main.bounds.width > UIScreen.main.bounds.height

        print("(isLand) -> (isLand2)")
    }
}

它在iPhone中工作正常,但是在iPad isLand中,已经具有新的值,该值应该是在方向完成后的,因此:

肖像>景观:true -> true

风景>肖像:false -> false

根据文档,界限应随着方向而变化,以便它具有在范围之前/之后,不是吗?

Uiscreen主界:

此矩形在当前坐标空间中指定 考虑到该设备有效的任何接口旋转。 因此,该属性的价值可能会在设备时发生变化 在肖像和景观方向之间旋转。

,如果我使用当前的根视图控制器的边界,则它可以很好地工作:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    let isLand = UIApplication.shared.keyWindow!.rootViewController!.view.bounds.width > UIApplication.shared.keyWindow!.rootViewController!.view.bounds.height
    coordinator.animate(alongsideTransition: nil) { _ in
        let isLand2 = UIApplication.shared.keyWindow!.rootViewController!.view.bounds.width > UIApplication.shared.keyWindow!.rootViewController!.view.bounds.height

        print("(isLand) -> (isLand2)")
    }
}

肖像>景观:false -> true

风景>肖像:true -> false

您应该尝试使用协调器上下文的coarterview。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    let isLand = coordinator.containerView.bounds.width > coordinator.containerView.bounds.height
    coordinator.animate(alongsideTransition: nil) { _ in
        let isLand2 = coordinator.containerView.bounds.width > coordinator.containerView.bounds.height
        print("(isLand) -> (isLand2)")
    }
}

如果您想获得有关过渡的更多信息,则可以使用func view(forKey: UITransitionContextViewKey)func viewController(forKey: UITransitionContextViewControllerKey)使用.from密钥。

相关内容

  • 没有找到相关文章

最新更新