//
|
// TAAnimatedDotView.m
|
// TAPageControl
|
//
|
// Created by Tanguy Aladenise on 2015-01-22.
|
// Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
|
//
|
|
#import "TAAnimatedDotView.h"
|
|
static CGFloat const kAnimateDuration = 1;
|
|
@implementation TAAnimatedDotView
|
|
- (instancetype)init
|
{
|
self = [super init];
|
if (self) {
|
[self initialization];
|
}
|
|
return self;
|
}
|
|
|
- (id)initWithFrame:(CGRect)frame
|
{
|
self = [super initWithFrame:frame];
|
if (self) {
|
[self initialization];
|
}
|
return self;
|
}
|
|
|
- (id)initWithCoder:(NSCoder *)aDecoder
|
{
|
self = [super initWithCoder:aDecoder];
|
if (self) {
|
[self initialization];
|
}
|
|
return self;
|
}
|
|
- (void)setDotColor:(UIColor *)dotColor
|
{
|
_dotColor = dotColor;
|
self.layer.borderColor = dotColor.CGColor;
|
}
|
|
- (void)initialization
|
{
|
_dotColor = [UIColor whiteColor];
|
self.backgroundColor = [UIColor clearColor];
|
self.layer.cornerRadius = CGRectGetWidth(self.frame) / 2;
|
self.layer.borderColor = [UIColor whiteColor].CGColor;
|
self.layer.borderWidth = 2;
|
}
|
|
|
- (void)changeActivityState:(BOOL)active
|
{
|
if (active) {
|
[self animateToActiveState];
|
} else {
|
[self animateToDeactiveState];
|
}
|
}
|
|
|
- (void)animateToActiveState
|
{
|
[UIView animateWithDuration:kAnimateDuration delay:0 usingSpringWithDamping:.5 initialSpringVelocity:-20 options:UIViewAnimationOptionCurveLinear animations:^{
|
self.backgroundColor = _dotColor;
|
self.transform = CGAffineTransformMakeScale(1.4, 1.4);
|
} completion:nil];
|
}
|
|
- (void)animateToDeactiveState
|
{
|
[UIView animateWithDuration:kAnimateDuration delay:0 usingSpringWithDamping:.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{
|
self.backgroundColor = [UIColor clearColor];
|
self.transform = CGAffineTransformIdentity;
|
} completion:nil];
|
}
|
|
@end
|