Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios animateTransition重置为View';s帧原点到(0,0)_Ios_Swift_Uiview - Fatal编程技术网

Ios animateTransition重置为View';s帧原点到(0,0)

Ios animateTransition重置为View';s帧原点到(0,0),ios,swift,uiview,Ios,Swift,Uiview,我在尝试在两个视图控制器之间使用自定义转换时遇到问题。当我在动画完成后运行动画时,toView的帧原点将重置为(0,0): 提出和驳回的代码如下所示: class ConfirmEmailAnimator: NSObject, UIViewControllerAnimatedTransitioning { let duration = 0.5 var dismiss = false func transitionDuration(transitionContext:

我在尝试在两个视图控制器之间使用自定义转换时遇到问题。当我在动画完成后运行动画时,toView的帧原点将重置为(0,0):

提出和驳回的代码如下所示:

class ConfirmEmailAnimator: NSObject, UIViewControllerAnimatedTransitioning {

    let duration = 0.5
    var dismiss = false

    func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
        return duration
    }

    func animateTransition(transitionContext: UIViewControllerContextTransitioning) {

        if !dismiss {

            let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
            let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!
            let finalFrame = toView.frame
            toView.frame.origin.x += transitionContext.containerView()!.frame.size.width
            transitionContext.containerView()?.addSubview(toView)

            //Animate out
            UIView.animateWithDuration(duration, animations: { () -> Void in
                fromView.frame.origin.x -= transitionContext.containerView()!.frame.size.width
                toView.frame = finalFrame
                }) { (Bool) -> Void in
                    transitionContext.completeTransition(true)

            }


        }


        else {

            let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
            let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!

            transitionContext.containerView()!.addSubview(toView)
            transitionContext.containerView()!.bringSubviewToFront(toView)


            //Animate out
            UIView.animateWithDuration(duration, animations: { () -> Void in
                toView.center = transitionContext.containerView()!.center
                fromView.center.x += 400
                }) { (Bool) -> Void in

                    transitionContext.completeTransition(true)

            }

        }

        }


}
你知道我可能做错了什么吗?只需要将视图动画设置回其原始位置,而不是(0,0)s