Ios animateTransition重置为View';s帧原点到(0,0)
我在尝试在两个视图控制器之间使用自定义转换时遇到问题。当我在动画完成后运行动画时,toView的帧原点将重置为(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:
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