我有一个不使用自动版式的UIView,并且根据其在主 View 中X和Y坐标的百分比显示了一些组件。

以前,我本可以运行一个函数来更新它们在didRotateFromInterfaceOrientation中的位置,但是我看到现在iOS8中已弃用此功能。

我看过viewWillTransitionToSize,但是给出的结果很奇怪,而且似乎没有viewDidtransitionToSize函数。

设备旋转后,是否有一种简便的方法(在Swift中)运行函数?

最佳答案

viewWillTransitionToSize 委托(delegate)方法与符合 UIViewControllerTransitionCoordinator 的对象一起调用。协议(protocol)声明的方法是 animateAlongsideTransition(_:animation, completion:) 。您可以使用它来使代码在转换完成后执行。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    coordinator.animate(alongsideTransition: nil) { _ in
        // Your code here
    }
}

10-01 06:37