相关疑难解决方法(0)

UIPercentDrivenInteractiveTransition无法在快速手势上完成动画

我创建了一个交互式过渡.我func animateTransition(transitionContext: UIViewControllerContextTransitioning)很正常,我得到了容器UIView,我添加了两个UIViewControllers,然后我做了动画更改UIView.animateWithDuration(duration, animations, completion).

我添加了一个UIScreenEdgePanGestureRecognizer来自我的UIViewController.它运作良好,除非我做一个非常快速的平底锅.

在最后一个场景中,应用程序没有响应,仍然是相同的UIViewController(转换似乎没有工作)但后台任务运行.当我运行时Debug View Hierarchy,我看到的是新的UIViewController而不是前一个,而前一个(至少是它UIView)代表它应该在转换结束时站立的位置.

我做了一些打印和检查点,从中我可以说,当问题发生时,动画的完成(我animateTransition方法中的那个)没有到达,所以我无法调用transitionContext.completeTransition方法来完成或不完成转换.

我也可以看到平底锅有时从UIGestureRecognizerState.Began直线走到UIGestureRecognizerState.Ended没经过UIGestureRecognizerState.Changed.

当它通过UIGestureRecognizerState.Changed,translation velocity留为每个相同UIGestureRecognizerState.Changed的状态.

编辑:

这是代码:

animateTransition 方法

func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
    self.transitionContext = transitionContext

    let containerView = transitionContext.containerView()
    let screens: (from: UIViewController, to: UIViewController) = (transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)!, …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios swift

5
推荐指数
1
解决办法
3671
查看次数

标签 统计

ios ×1

swift ×1

uiviewcontroller ×1