New file |
| | |
| | | // |
| | | // 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 |