我有一个自定义的uiviewcontroller转换,它基本上将即将到来的viewcontroller堆叠在屏幕上当前viewcontroller的右侧,并将其向左(推)或向右(弹出)滑动。
我已经实现了交互转换:
@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
到按下的视图控制器的视图。