Files
RyukGram/modules/JGProgressHUD/JGProgressHUDFadeZoomAnimation.m

78 lines
3.1 KiB
Objective-C
Executable File

//
// JGProgressHUDFadeZoomAnimation.m
// JGProgressHUD
//
// Created by Jonas Gessner on 20.7.14.
// Copyright (c) 2014 Jonas Gessner. All rights reserved.
//
#import "JGProgressHUDFadeZoomAnimation.h"
#import "JGProgressHUD.h"
@implementation JGProgressHUDFadeZoomAnimation
#pragma mark - Initializers
- (instancetype)init {
self = [super init];
if (self) {
self.shrinkAnimationDuaration = 0.2;
self.expandAnimationDuaration = 0.1;
self.expandScale = CGSizeMake(1.1, 1.1);
}
return self;
}
#pragma mark - Showing
- (void)show {
[super show];
self.progressHUD.alpha = 0.0;
self.progressHUD.HUDView.transform = CGAffineTransformMakeScale(0.1, 0.1);
NSTimeInterval totalDuration = self.expandAnimationDuaration+self.shrinkAnimationDuaration;
self.progressHUD.hidden = NO;
[UIView animateWithDuration:totalDuration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut) animations:^{
self.progressHUD.alpha = 1.0;
} completion:nil];
[UIView animateWithDuration:self.shrinkAnimationDuaration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) animations:^{
self.progressHUD.HUDView.transform = CGAffineTransformMakeScale(self.expandScale.width, self.expandScale.height);
} completion:^(BOOL __unused _finished) {
[UIView animateWithDuration:self.expandAnimationDuaration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState) animations:^{
self.progressHUD.HUDView.transform = CGAffineTransformIdentity;
} completion:^(BOOL __unused __finished) {
[self animationFinished];
}];
}];
}
#pragma mark - Hiding
- (void)hide {
[super hide];
NSTimeInterval totalDuration = self.expandAnimationDuaration+self.shrinkAnimationDuaration;
[UIView animateWithDuration:totalDuration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut) animations:^{
self.progressHUD.alpha = 0.0;
} completion:nil];
[UIView animateWithDuration:self.expandAnimationDuaration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) animations:^{
self.progressHUD.HUDView.transform = CGAffineTransformMakeScale(self.expandScale.width, self.expandScale.height);
} completion:^(BOOL __unused _finished) {
[UIView animateWithDuration:self.shrinkAnimationDuaration delay:0.0 options:(UIViewAnimationOptions)(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState) animations:^{
self.progressHUD.HUDView.transform = CGAffineTransformMakeScale(0.1, 0.1);
} completion:^(BOOL __unused __finished) {
self.progressHUD.HUDView.transform = CGAffineTransformIdentity;
[self animationFinished];
}];
}];
}
@end