Ios swift中视图控制器的三维翻转动画

Ios swift中视图控制器的三维翻转动画,ios,git,animation,swift2,viewcontroller,Ios,Git,Animation,Swift2,Viewcontroller,我正在尝试在视图控制器之间获得这样的3d翻转动画 https://github.com/nicklockwood/CubeController 对于动画。。根据反向值,我设置时钟方向或反时钟方向 这是我用于动画的代码 class CusNavAnimController : NSObject, UIViewControllerAnimatedTransitioning { var reverse: Bool = false func transitionDuration(t

我正在尝试在视图控制器之间获得这样的3d翻转动画

    https://github.com/nicklockwood/CubeController
对于动画。。根据反向值,我设置时钟方向或反时钟方向

这是我用于动画的代码

    class CusNavAnimController : NSObject, UIViewControllerAnimatedTransitioning {

var reverse: Bool = false

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

    return 0.25
}

func animateTransition(transitionContext: UIViewControllerContextTransitioning) {

    let containerView = transitionContext.containerView()

    let toViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)!

    let fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)!

    let toView = toViewController.view

    let fromView = fromViewController.view

    //
    toView.frame = UIScreen.mainScreen().bounds
    fromView.frame = UIScreen.mainScreen().bounds

    let direction: CGFloat = reverse ? -1 : 1
    let const: CGFloat = -0.005

    toView.layer.anchorPoint = CGPointMake(direction == 1 ? 0 : 1, 0.5)
    fromView.layer.anchorPoint = CGPointMake(direction == 1 ? 1 : 0, 0.5)

    var viewFromTransform: CATransform3D = CATransform3DMakeRotation(direction * CGFloat(M_PI_2), 0.0, 1.0, 0.0)
    var viewToTransform: CATransform3D = CATransform3DMakeRotation(-direction * CGFloat(M_PI_2), 0.0, 1.0, 0.0)

    viewFromTransform.m34 = const
    viewToTransform.m34 = const

    containerView!.transform = CGAffineTransformMakeTranslation(direction * containerView!.frame.size.width / 2.0, 0)
    toView.layer.transform = viewToTransform

    containerView!.addSubview(toView)

    UIView.animateWithDuration(transitionDuration(transitionContext), animations: {

        containerView!.transform = CGAffineTransformMakeTranslation(-direction * containerView!.frame.size.width / 2.0, 0)
        fromView.layer.transform = viewFromTransform
        toView.layer.transform = CATransform3DIdentity

        }, completion: {

            finished in

            containerView!.transform = CGAffineTransformIdentity
            fromView.layer.transform = CATransform3DIdentity
            toView.layer.transform = CATransform3DIdentity
            fromView.layer.anchorPoint = CGPointMake(0.5, 0.5)
            toView.layer.anchorPoint = CGPointMake(0.5, 0.5)

            if (transitionContext.transitionWasCancelled()) {

                toView.removeFromSuperview()

            } else {

                fromView.removeFromSuperview()
            }

            transitionContext.completeTransition(!transitionContext.transitionWasCancelled())
    })
}}
我得到的动画,但它是不一样的git枢纽链接提供。。
对于我的代码。。fromview稍微向后移动,toview从该点向前移动。。是否有人可以建议我更改

查看

中的
TransitionFlipFromLeft
TransitionFlipFromRight
,我是否可以使用TransitionFlipFromLeft和TransitionFlipFromRight获得视图控制器转换的3d效果。。你能告诉我在哪里添加它吗?你用它来翻转视图,而不是视图控制器。在希望动画发生的位置执行以下操作:
[UIView转换从视图:第一视图到视图:第二视图持续时间:1.0选项:UIViewAnimationOption转换FlipFromLeft完成:nil]
它将翻转,但翻转时应采用3d方式,我如何设置输出应为这样,盒子外没有类似的东西。你要么使用你自己的,要么使用CubeControl类。这非常有效。