HWPageSheetPresentingAnimation.m 1.2 KB

1234567891011121314151617181920212223242526272829
  1. //
  2. // HWPageSheetPresentingAnimation.m
  3. // HWPanModal-iOS10.0
  4. //
  5. // Created by heath wang on 2019/9/5.
  6. //
  7. #import "HWPageSheetPresentingAnimation.h"
  8. @implementation HWPageSheetPresentingAnimation
  9. - (void)presentAnimateTransition:(nonnull id <HWPresentingViewControllerContextTransitioning>)context {
  10. NSTimeInterval duration = [context transitionDuration];
  11. UIViewController *fromVC = [context viewControllerForKey:UITransitionContextFromViewControllerKey];
  12. [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
  13. CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
  14. CGFloat scale = 1 - statusBarHeight * 2 / CGRectGetHeight(fromVC.view.bounds);
  15. fromVC.view.transform = CGAffineTransformMakeScale(scale, scale);
  16. } completion:^(BOOL finished) {
  17. }];
  18. }
  19. - (void)dismissAnimateTransition:(nonnull id <HWPresentingViewControllerContextTransitioning>)context {
  20. UIViewController *toVC = [context viewControllerForKey:UITransitionContextToViewControllerKey];
  21. toVC.view.transform = CGAffineTransformIdentity;
  22. }
  23. @end