//
|
// Copyright (c) 2015年 dahua. All rights reserved.
|
//
|
|
#define ANIMATION_KEY @"rotationAnimation"
|
|
#import "DHActivityIndicatorView.h"
|
|
@implementation DHActivityIndicatorView
|
|
@synthesize style = _style;
|
|
- (void)dealloc {
|
|
}
|
|
- (id)initWithCoder:(NSCoder *)aDecoder {
|
if (self = [super initWithCoder:aDecoder]) {
|
_style = DHActivityIndicatorViewStyleYellow;
|
|
self.backgroundColor = [UIColor clearColor];
|
|
CGSize size = CGSizeMake(22, 22);
|
CGRect rect = self.frame;
|
rect.size = size;
|
self.frame = rect;
|
|
rect.origin.x = 0;
|
rect.origin.y = 0;
|
_backgroundView = [[UIImageView alloc] initWithFrame:rect];
|
_backgroundView.image = [UIImage imageNamed:@"lc_loading_orange_2.png"];
|
[self addSubview:_backgroundView];
|
|
_rotationView = [[UIImageView alloc] initWithFrame:rect];
|
_rotationView.image = [UIImage imageNamed:@"lc_loading_orange_1.png"];
|
[self addSubview:_rotationView];
|
}
|
|
return self;
|
}
|
|
- (id)initWithFrame:(CGRect)frame
|
{
|
|
if (self = [super initWithFrame:frame])
|
{
|
_style = DHActivityIndicatorViewStyleYellow;
|
|
CGSize size = CGSizeMake(22, 22);
|
CGRect rect = self.frame;
|
rect.origin.x = frame.origin.x;
|
rect.origin.y = frame.origin.y;
|
rect.size = size;
|
self.frame = rect;
|
|
rect.origin.x = 0;
|
rect.origin.y = 0;
|
_backgroundView = [[UIImageView alloc] initWithFrame:rect];
|
_backgroundView.image = [UIImage imageNamed:@"lc_loading_orange_2.png"];
|
[self addSubview:_backgroundView];
|
|
_rotationView = [[UIImageView alloc] initWithFrame:rect];
|
_rotationView.image = [UIImage imageNamed:@"lc_loading_orange_1.png"];
|
[self addSubview:_rotationView];
|
}
|
|
return self;
|
}
|
|
- (void) startAnimating
|
{
|
[_rotationView.layer removeAllAnimations];
|
[_backgroundView.layer removeAllAnimations];
|
|
CABasicAnimation* rotationAnimation;
|
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
rotationAnimation.fillMode = kCAFillModeForwards;
|
rotationAnimation.fromValue = @(0);
|
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];
|
rotationAnimation.duration = 1.5;
|
rotationAnimation.repeatCount = HUGE_VALF;
|
rotationAnimation.removedOnCompletion = NO;
|
[_rotationView.layer addAnimation:rotationAnimation forKey:ANIMATION_KEY];
|
|
rotationAnimation.toValue = [NSNumber numberWithFloat: -M_PI * 2.0 ];
|
[_backgroundView.layer addAnimation:rotationAnimation forKey:ANIMATION_KEY];
|
}
|
|
- (void) stopAnimating
|
{
|
[_rotationView.layer removeAllAnimations];
|
[_backgroundView.layer removeAllAnimations];
|
}
|
|
- (void) setStyle:(DHActivityIndicatorViewStyle)style {
|
if (style == DHActivityIndicatorViewStyleYellow) {
|
_backgroundView.image = [UIImage imageNamed:@"lc_loading_orange_2.png"];
|
_rotationView.image = [UIImage imageNamed:@"lc_loading_orange_1.png"];
|
} else if (style == DHActivityIndicatorViewStyleWhite) {
|
_backgroundView.image = [UIImage imageNamed:@"lc_loading_white_2.png"];
|
_rotationView.image = [UIImage imageNamed:@"lc_loading_white_1.png"];
|
}
|
}
|
|
// MBProgressHud: The view should implement intrinsicContentSize for proper sizing. For best results use approximately 37 by 37 pixels
|
- (CGSize)intrinsicContentSize {
|
return CGSizeMake(22, 22);
|
}
|
|
@end
|