DMAlphaTransition.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // DMAlphaTransition.m
  3. // DMCustomTransition
  4. //
  5. // Created by Thomas Ricouard on 26/11/13.
  6. // Copyright (c) 2013 Thomas Ricouard. All rights reserved.
  7. //
  8. #import "DMAlphaTransition.h"
  9. @implementation DMAlphaTransition
  10. #pragma mark - UIViewControllerAnimatedTransitioning
  11. - (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext
  12. {
  13. return 0.30f;
  14. }
  15. - (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
  16. {
  17. UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
  18. UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
  19. UIView *containerView = [transitionContext containerView];
  20. if (self.isPresenting) {
  21. [containerView addSubview:toVC.view];
  22. [toVC.view setAlpha:0];
  23. [UIView animateWithDuration:[self transitionDuration:transitionContext]
  24. animations:^{
  25. [toVC.view setAlpha:1];
  26. }
  27. completion:^(BOOL finished) {
  28. [transitionContext completeTransition:YES];
  29. }];
  30. }
  31. else {
  32. [containerView addSubview:toVC.view];
  33. [containerView addSubview:fromVC.view];
  34. [UIView animateWithDuration:[self transitionDuration:transitionContext]
  35. animations:^{
  36. [fromVC.view setAlpha:0];
  37. }
  38. completion:^(BOOL finished) {
  39. [transitionContext completeTransition:YES];
  40. }];
  41. }
  42. }
  43. @end