美文网首页iOS开发
iOS 开机滑动解锁

iOS 开机滑动解锁

作者: ZCY_YAM | 来源:发表于2017-01-09 12:20 被阅读102次
    这里写图片描述

    直接上代码

    //// UIView+FlashesMask.h// RunningLightAnimation
    //// Created by iFens on 16/3/29.// Copyright © 2016年 Ifans. All rights reserved.
    //#import <UIKit/UIKit.h>@interface UIView (FlashesMask)
    -(void)FlashesMaskAimationBeginWithRepeatCount:(CGFloat)count duration:(NSTimeInterval)duration FlashesWidth:(CGFloat)FlashesWidth ;
    -(void)FlashesMaskAimationStop;
    @end
    
    //// UIView+FlashesMask.m// RunningLightAnimation
    //// Created by iFens on 16/3/29.// Copyright © 2016年 Ifans. All rights reserved.
    //#import "UIView+FlashesMask.h"
    #define FlashesMaskAinmation @"FlashesMaskAinmation"
    @implementation UIView (FlashesMask)-(void)FlashesMaskAimationBeginWithRepeatCount:(CGFloat)count duration:(NSTimeInterval)duration FlashesWidth:(CGFloat)FlashesWidth
    { NSAssert([self isKindOfClass:[UIView class]], @"必须是UIView子类");  
    CAGradientLayer *FlashesMaskLayer = [[CAGradientLayer alloc]init]; 
    [FlashesMaskLayer setFrame:self.bounds]; CGFloat flashSize = FlashesWidth / self.frame.size.width;
      NSArray *startLocations = @[@0, [NSNumber numberWithFloat:(flashSize / 2.)], [NSNumber numberWithFloat:flashSize] ]; 
    NSArray *endLocations = @[[NSNumber numberWithFloat:(1. - flashSize)], 
    [NSNumber numberWithFloat:(1. - (flashSize / 2.))], @1 ];  
    FlashesMaskLayer.locations = startLocations; FlashesMaskLayer.startPoint = CGPointMake(0 - (flashSize * 2), .5);
     FlashesMaskLayer.endPoint = CGPointMake(1 + flashSize, .5); 
    [FlashesMaskLayer setColors:@[(id)[UIColor colorWithWhite:1 alpha:0.1].CGColor,(id)[UIColor colorWithWhite:0 alpha:1].CGColor,(id)[UIColor colorWithWhite:1 alpha:0.1].CGColor]];
     CABasicAnimation * base = [CABasicAnimation animationWithKeyPath:@"locations"];
     base.fromValue = startLocations; base.toValue = endLocations;
      [base setDuration:duration];
     [base setRepeatCount:count]; self.layer.mask=FlashesMaskLayer; 
    [FlashesMaskLayer addAnimation:base forKey:FlashesMaskAinmation];}
    
    -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ if (
    [anim valueForKey:FlashesMaskAinmation]) { self.layer.mask = nil; 
    }}
    
    -(void)FlashesMaskAimationStop{ 
    [self.layer.mask removeAnimationForKey:FlashesMaskAinmation];
    }
    @end
    

    相关文章

      网友评论

        本文标题:iOS 开机滑动解锁

        本文链接:https://www.haomeiwen.com/subject/djthbttx.html