做一个类似于iPhone经典滑动解锁动画的发光按钮(流光)代码如下

//device screen size

#define kScreenWidth         [[UIScreen mainScreen] bounds].size.width

#define kScreenHeight        [[UIScreen mainScreen] bounds].size.height

#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]

#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]

#define kColorTextDarkGray  RGB(100,100,100)   //稍深的灰色字体

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic,strong)  CAGradientLayer *gradientLayer;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

[self initView];

}

-(void)initView{

UIView *tempView = [UIView new];

[self.view addSubview:tempView];

tempView.backgroundColor = [UIColor grayColor];

tempView.frame = CGRectMake(16, 60, kScreenWidth-32, 44);

UILabel *skipLabel = [[UILabel alloc] init];

skipLabel.font = [UIFont systemFontOfSize:18];

skipLabel.text = @"跳过 > ";

skipLabel.textAlignment = NSTextAlignmentCenter;

skipLabel.textColor = kColorTextDarkGray;

//    skipLabel.backgroundColor = [UIColor greenColor];

skipLabel.frame = tempView.bounds;

[tempView addSubview:skipLabel];

CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init];

self.gradientLayer = gradientLayer;

gradientLayer.bounds = skipLabel.bounds;

gradientLayer.position = skipLabel.center;

gradientLayer.startPoint = CGPointMake(0, 0.5);

gradientLayer.endPoint = CGPointMake(1, 0.5);

NSMutableArray *colors = [NSMutableArray array];

[colors addObject:(id)[UIColor blackColor].CGColor];

[colors addObject:(id)[UIColor whiteColor].CGColor];

[colors addObject:(id)[UIColor blackColor].CGColor];

gradientLayer.colors = colors;

gradientLayer.locations = @[@0.2, @0.5, @0.8];

[tempView.layer addSublayer:gradientLayer];

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"locations"];

anim.fromValue =  @[@0, @0, @0.3];

anim.toValue = @[@0.7,@1,@1];

anim.duration = 1.5;

anim.repeatCount = HUGE;

anim.removedOnCompletion = NO;

[gradientLayer addAnimation:anim forKey:nil];

gradientLayer.mask = skipLabel.layer;

gradientLayer.masksToBounds = YES;

UIButton *skipBtn = [[UIButton alloc] init];

skipBtn.backgroundColor = [UIColor clearColor];

[skipBtn addTarget:self action:@selector(skipBtnClicked) forControlEvents:UIControlEventTouchUpInside];

[tempView addSubview:skipBtn];

skipBtn.frame = tempView.bounds;

}

-(void)skipBtnClicked{

NSLog(@"---点击我了---");

}

iOS 闪光的按钮,流光动画,iPhone经典滑动解锁动画相关推荐

  1. iPhone不能滑动解锁了怎么办?iPhone滑动解锁失灵解决方法

    iPhone 用的时间一长,滑动可能会失灵,怎么办呢? iPhone 百科网小编这里就为大家总结iPhone滑动失灵解决方案. 1.手机不要放裤兜,放上衣口袋或使用手机套. 2.如果非要放裤兜,那就不 ...

  2. html实现滑动解锁_HTML5 滑动解锁动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var inputRange = document.getElementsByClassName('pull ...

  3. flash一个按钮控制动画_flutter闪屏过渡动画,闪光占位动画

    在程序设计的理念中,讲究一切都来源于物理世界,在现实世界中,人们在每接触到一个新的事物或者说在手指触碰到一个事物时,总是心里默许期望有一个反馈效果,这就是来源于心底深处常常被人忽略的一个潜在期望. 在 ...

  4. html流光按钮,【CSS】css实现流光效果-按钮流光显示效果-自发光

    [CSS]css实现流光效果-按钮流光显示效果-自发光 [CSS]css实现流光效果-按钮流光显示效果-自发光 废话不多说,直接上代码 Streamer * { padding: 0; margin: ...

  5. iphone计算机怎样打开声音,8个iOS必知小技巧!iPhone的声音还可以调更大哦!

    原标题:8个iOS必知小技巧!iPhone的声音还可以调更大哦! 用了 iPhone 这么久,你到底有多了解它呢?所有的功能你都用到了吗?今天大妈给乃们推荐的这篇文章就介绍了8个iOS的小技巧.你知道 ...

  6. html5 css3鼠标滑过效果,纯CSS3鼠标滑过按钮流光效果

    这是一款效果非常炫酷的纯CSS3鼠标滑过按钮流光效果.当用户用鼠标滑过按钮的时候,一道流光会瞬间滑过按钮,就像玻璃的反光效果,非常漂亮. 使用方法 HTML结构 该效果中的按钮是一个超链接元素. Li ...

  7. iOS 动画原理与实现--帧动画、逐帧动画、CALayer

    这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式. 什么是动画 动画,顾名思义,就是能"动"的画. 人的眼睛对图像有短暂的记 ...

  8. 小y的放松时刻-0003:按钮流光效果

    小y的放松时刻-0003:按钮流光效果 内容简介 原链接 效果展示 代码 内容简介 这是小y学习css.js的记录和分享. 绝大部分内容将会是非原创,侵删. 原链接 https://blog.csdn ...

  9. 使用css + 部分js制作按钮流光特效

    制作一个按钮流光特效,其核心就在于规律的动画的执行, 让我们先看看效果吧 鼠标移入会出现颜色循环流动效果. html部分(就是一个简单的a标签) <a href="#"> ...

最新文章

  1. 获取个人借阅信息---图书馆client
  2. wpf开发仿真3d软件_web 3d 与仿真
  3. 聊聊如何构建一支自驱团队(一)
  4. sqlserver实现分页的几种方式
  5. java 循环stringbuffer_java常用类-----StringBuilder和StringBuffer的用法
  6. 常见面试算法:决策树、随机森林和AdaBoost
  7. 四张照片合成一张怎么弄_教你5种照片创意手工,简单好看实用
  8. CentOS7 网络配置--NAT模式
  9. word java api_Java中的Word文档创建API
  10. 基于RiskPariyBlackLitterman的因子择时
  11. 分水岭算法(学习笔记)
  12. 5月全球CTF比赛时间汇总来了!
  13. java商品管理系统
  14. Mysql中的常用类型 说明
  15. 地标海之珠夜色素材高清图片
  16. CentOS7下MySQL服务启动失败原因及解决方法
  17. 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)
  18. KTIT:知识技术和信息技术
  19. 高压功率放大器ATA4014VS高压功率放大器HSA42014
  20. 景联文科技:为自动驾驶车载语音识别技术提供全方面的数据支持

热门文章

  1. 七彩cms云转码_七彩CMS开源程序 2019最新云转码全开源程序源码[带完整安装搭建教程]...
  2. mysql连接不上 显示密码错误,mysql输入正确密码连接不上怎么办
  3. 解决Webstorm通过Chrome无法调用JB插件调试的问题
  4. 中信易卡,你值得搬砖吗?
  5. Firmament - 大规模集群任务调度
  6. 管理就是通过别人完成任务,别怕员工犯错
  7. 根据空间中不共面的四个点坐标,求构成任意四面体的内外球
  8. 浙江大学MEM面试小结
  9. 附件三:防守方评分标准.docx
  10. 2022DASCTF Apr X FATE 防疫挑战赛 good_luck