我有一个自定义的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
的操作添加到推送的视图控制器视图中。