开源提示框SVProgressHUD使用备忘录 (七)

2014-11-24 03:28:15 · 作者: · 浏览: 5
erlayWindow makeKeyAndVisible];
[self positionHUD:nil];

if(self.alpha != 1) {
[self registerNotifications];
self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1.3, 1.3);

[UIView animateWithDuration:0.15
delay:0
options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1/1.3, 1/1.3);
self.alpha = 1;
}
completion:NULL];
}

[self setNeedsDisplay];
});
}


- (void)dismissWithStatus:(NSString*)string error:(BOOL)error {
[self dismissWithStatus:string error:error afterDelay:0.9];
}


- (void)dismissWithStatus:(NSString *)string error:(BOOL)error afterDelay:(NSTimeInterval)seconds {
dispatch_async(dispatch_get_main_queue(), ^{
if(self.alpha != 1)
return;

if(error)
self.imageView.image = [UIImage imageNamed:@"SVProgressHUD.bundle/error.png"];
else
self.imageView.image = [UIImage imageNamed:@"SVProgressHUD.bundle/success.png"];

self.imageView.hidden = NO;
[self setStatus:string];
[self.spinnerView stopAnimating];

self.fadeOutTimer = [NSTimer scheduledTimerWithTimeInterval:seconds target:self selector:@selector(dismiss) userInfo:nil repeats:NO];
});
}

- (void)dismiss {
dispatch_async(dispatch_get_main_queue(), ^{

[UIView animateWithDuration:0.15
delay:0
options:UIViewAnimationCurveEaseIn | UIViewAnimationOptionAllowUserInteraction
animations:^{
self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 0.8, 0.8);
self.alpha = 0;
}
completion:^(BOOL finished){
if(self.alpha == 0) {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[hudView removeFromSuperview];
hudView = nil;

// Make sure to remove the overlay window from the list of windows
// before trying to find the key window in that same list
NSMutableArray *windows = [[NSMutableArray alloc] initWithArray:[UIApplication sharedApplication].windows];
[windows removeObject:overlayWindow];
overlayWindow = nil;

[windows enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(UIWindow *window, NSUInteger idx, BOOL *stop) {