123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- //
- // LBXScanLineAnimation.m
- //
- //
- // Created by lbxia on 15/11/3.
- // Copyright © 2015年 lbxia. All rights reserved.
- //
- #import "LBXScanNetAnimation.h"
- @interface LBXScanNetAnimation()
- {
- BOOL isAnimationing;
- }
- @property (nonatomic,assign) CGRect animationRect;
- @property (nonatomic,strong) UIImageView *scanImageView;
- @end
- @implementation LBXScanNetAnimation
- - (instancetype)init{
- self = [super init];
- if (self) {
- self.clipsToBounds = YES;
- [self addSubview:self.scanImageView];
- }
- return self;
- }
- - (UIImageView *)scanImageView{
- if (!_scanImageView) {
- _scanImageView = [[UIImageView alloc] init];
- }
- return _scanImageView;
- }
- - (void)stepAnimation
- {
- if (!isAnimationing) {
- return;
- }
-
- self.frame = _animationRect;
-
- CGFloat scanNetImageViewW = self.frame.size.width;
- CGFloat scanNetImageH = self.frame.size.height;
-
- __weak __typeof(self) weakSelf = self;
- self.alpha = 0.5;
- _scanImageView.frame = CGRectMake(0, -scanNetImageH, scanNetImageViewW, scanNetImageH);
- [UIView animateWithDuration:1.4 animations:^{
- weakSelf.alpha = 1.0;
-
- _scanImageView.frame = CGRectMake(0, scanNetImageViewW-scanNetImageH, scanNetImageViewW, scanNetImageH);
-
- } completion:^(BOOL finished)
- {
- [weakSelf performSelector:@selector(stepAnimation) withObject:nil afterDelay:0.3];
- }];
- }
- - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
- [self performSelector:@selector(stepAnimation) withObject:nil afterDelay:0.3];
- }
- - (void)startAnimatingWithRect:(CGRect)animationRect InView:(UIView *)parentView Image:(UIImage*)image
- {
- [self.scanImageView setImage:image];
-
- self.animationRect = animationRect;
-
- [parentView addSubview:self];
-
- self.hidden = NO;
-
- isAnimationing = YES;
-
- [self stepAnimation];
- }
- - (void)dealloc
- {
- [self stopAnimating];
- }
- - (void)stopAnimating
- {
- self.hidden = YES;
- isAnimationing = NO;
-
- [NSObject cancelPreviousPerformRequestsWithTarget:self];
- }
- @end
|