在 swift 4.1 中,如何监听视图控制器何时完成旋转?

Wil*_*ett 1 uiviewcontroller ios swift

我正在使用 viewWillTransition 函数来检测旋转,但我想为动画的完成事件添加一个闭包,或者以其他方式检测旋转已完成。

在以前的 swift 版本中,有一个 didRotate 函数,但已被弃用。

编辑

public override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator){
    // I want to add a delegate or closure here when the coordinator's animation is finished
}
Run Code Online (Sandbox Code Playgroud)

Pab*_*mez 5

在 viewWillTransition 中,您有一个完成块来显示旋转何时完成,要检查动画何时完成,它必须位于动画完成块中。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
Run Code Online (Sandbox Code Playgroud)

而里面你必须调用超级。还有 coordinator.animate ,其中有完成块

super.viewWillTransition(to: size, with: coordinator)
            coordinator.animate(alongsideTransition: { (_) in

                // Code while it is transitioning

            }, completion: _ in
               // Completion block
            )
Run Code Online (Sandbox Code Playgroud)