Pinterest喜欢 - UIViewControllerAnimatedTransitioning

时间:2015-09-28 16:31:47

标签: ios swift pinterest uiviewanimationtransition

我想在UICollectionViewCell上完成与Pinterest相同的缩放效果。

我读了这个stack post并尝试理解复杂的回购。

所以我做了一些关于UIViewControllerAnimatedTransitioning的演讲。

并且开始简单只是想将imageView从firstViewController移动到secondViewController的imageView的位置。现在并不关心规模。

所以我的2 VC在不同位置只有1个imageView。没有其他子视图。 并且firstViewController具有带方法的UIViewControllerTransitioningDelegate。

class MoveAnimation: NSObject, UIViewControllerAnimatedTransitioning {

  let duration = 2.0

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

  func animateTransition(transitionContext: UIViewControllerContextTransitioning) {

    let containerView = transitionContext.containerView()

    let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) as! SecondViewController

    let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) as! ViewController

    let toView = toVC.view
    let fromView = fromVC.view

    containerView.addSubview(toView)
    containerView.addSubview(fromView)

    let frame2 = toVC.imageView.frame

    UIView.animateWithDuration(duration, animations: { () -> Void in

      fromVC.imageView.frame = frame2 

      }) { (result) -> Void in
        transitionContext.completeTransition(true)
    }

  }
}

没有写出我意识到的所有实验。 但是这个动画从0,0开始并且不符合SecondViewController的imageView位置......

可能需要在此之前获得第二名? 试图这样做,但没有更多的机会..

1 个答案:

答案 0 :(得分:-1)

我不知道你的编码,但有一个第三方控件可以产生类似pinterest的动画。

以下是

的链接

https://github.com/xhzengAIB/PinterestAnimator