代码之家  ›  专栏  ›  技术社区  ›  Can PSR

自定义uiviewcontroller转换不以交互方式进行

  •  0
  • Can PSR  · 技术社区  · 8 年前

    我有一个自定义的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 到按下的视图控制器的视图。

    0 回复  |  直到 8 年前