自定义UIViewController转换不会以交互方式发生

时间:2018-05-28 11:31:56

标签: ios swift uiviewcontroller uiviewanimation

我有一个自定义的UIViewController转换,它基本上将即将到来的ViewController堆叠到屏幕上当前的ViewController的右侧,然后将它们向左(推)或向右(pop)滑动。

我已实现过渡为互动:

@objc private func addPanGestureRecognizer(_ gestureRecognizer: UIScreenEdgePanGestureRecognizer) {
    guard let view = gestureRecognizer.view else { return }
    let progress = gestureRecognizer.translation(in: view).x / view.frame.size.width

    switch gestureRecognizer.state {
    case .began:
        interactionController = UIPercentDrivenInteractiveTransition()
        navigationController.popViewController(animated: true)
    case .changed:
        interactionController.update(progress)
    default:
        if progress >= 0.5 {
            interactionController.finish()
        } else {
            interactionController.cancel()
        }

        interactionController = nil
    }
}

当我从屏幕左边缘应用滑动手势时,上面的手势操作会启动我的自定义转换,虽然它不会以交互方式发生但只是完全运行我的自定义动画。

导致它不以交互方式行事的原因是什么?

P.S。上述手势操作将作为UIScreenEdgePanGestureRecognizer的操作添加到推送的视图控制器视图中。

0 个答案:

没有答案