所有复杂动画都是由简单动画组合而成的

swift和oc demo

滑动来解锁

动画细节拆分:

1.使用CAGradientLayer处理颜色渐变

-(CAGradientLayer *)gradientLayer{

if (!_gradientLayer) {

_gradientLayer = [CAGradientLayer layer];

_gradientLayer.frame = CGRectMake(-self.bounds.size.width, self.bounds.origin.y, 3

* self.bounds.size.width, self.bounds.size.height);

_gradientLayer.startPoint = CGPointMake(0, 0.5);

_gradientLayer.endPoint = CGPointMake(1.0, 0.5);

_gradientLayer.colors = @[

(__bridge id)[UIColor blackColor].CGColor,

(__bridge id)[UIColor whiteColor].CGColor,

(__bridge id)[UIColor blackColor].CGColor

];

_gradientLayer.locations = @[@0.25,@0.5,@0.75];

}

return _gradientLayer;

}

渐变

2.使用CABasicAnimation为CAGradientLayer添加动画

//添加动画

-(void)animationWithGradientLayer{

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

gradientAnimation.fromValue = @[@0.0,@0.0,@0.25];

gradientAnimation.toValue = @[@0.75,@1.0,@1.0];

gradientAnimation.duration = 3.0;

gradientAnimation.repeatCount = MAXFLOAT;

[self.gradientLayer addAnimation:gradientAnimation forKey:nil];

}

滑动来解锁2.gif

3.将文字生成图片,设置gradientLayer的mask属性为图片,裁剪掉文字以外的部分

//文字生成图片

UIGraphicsBeginImageContext(self.bounds.size);

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

dict[NSForegroundColorAttributeName] = [UIColor redColor];

dict[NSFontAttributeName] = [UIFont systemFontOfSize:30.0];

[_text drawInRect:self.bounds withAttributes:@{NSForegroundColorAttributeName: [UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:30.0]}];

CGContextRef context= UIGraphicsGetCurrentContext ();

CGContextDrawPath (context, kCGPathStroke );

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

CALayer *maskLayer = [CALayer layer];

maskLayer.backgroundColor = [UIColor clearColor].CGColor;

maskLayer.frame = CGRectOffset(self.bounds, self.bounds.size.width, 0);

maskLayer.contents = (__bridge id _Nullable)(image.CGImage);

//使用蒙版裁剪掉没用的区域

self.gradientLayer.mask = maskLayer;

ios解锁动态图片_iOS 苹果开机启动的 滑动来解锁动画相关推荐

  1. ios解锁动态图片_iPhone不越狱如何设置酷炫的动态锁屏壁纸

    原标题:iPhone不越狱如何设置酷炫的动态锁屏壁纸 果粉学堂 在大安卓几百年前就可以实现的动态锁屏功能,iPhone才姗姗来迟,这不得不说苹果的系统,对于安卓用户来说,这个已经用烂了的功能在苹果上还 ...

  2. ios解锁动态图片_升级iOS10后的解锁界面 正确的打开方式是这样!(图)

    刚升级到iOS 10的小伙伴最直观的感受可能就是锁屏界面的改变了.从前只要按下电源键点亮屏幕,手指轻触Home键(不需要按下)就能轻松解锁手机.而现在点亮之后则必须按下Home键才行(广大非iPhon ...

  3. ios解锁动态图片_很想知道iPhone上锁屏上动态壁纸的技巧

    如果您播放音乐,则可以使用 MPNowPlayingInfoCenter(iOS 5.0及更高版本中可用)在锁定屏幕上设置封面,标题和艺术家等内容.您的代码可能如下所示: NSMutableDicti ...

  4. ios解锁动态图片_iPhone6s导入自制Live Photo动态锁屏图教程(无需越狱)[多图]

    iPhone6s导入Live Photo动态锁屏图教程. 首先: 1.此方法仅针对6S/6S PLUS,6/6plus/5S/5C/5/4S/4系列均不支持3D Touch,所以别压屏幕了!哎哎哎,那 ...

  5. ios wkweb设置图片_iOS 之 WKWebView自适应高度获取网络图片

    WKWebView是iOS8中引入的新组建,苹果将 UIWebViewDelegate 与 UIWebView 重构成了14个类和3个协议并引入了不少新的功能和接口,它代替了UIKit 中的 UIWe ...

  6. iOS APP项目图片尺寸大全(启动页、icon、App Store展示图片)

    iOS项目开发中需要用到很多的项目图片其中启动页.icon.App Store展示图等的尺寸较多一下我会汇总出来各种尺寸 1.启动页尺寸 以上红圈里面是首页版APP启动页的尺寸大全,iPad不需要支持 ...

  7. linux改开机图片,修改linux开机启动图像

    Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面 LINUX 启动logo 总结 最近在imx6上需要调试linux下启动logo.其实linux启动l ...

  8. ios wkweb设置图片_iOS WKWebView (NSURLProtocol)拦截js、css,图片资源

    项目地址github:HybirdWKWebVIew HybridNSURLProtocol 一个基于WKWebView的hybirde的容器.能拦截所有WKWKWebView的的css,js,png ...

  9. ios wkweb设置图片_iOS WKWebView的使用

    WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下. 示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1.W ...

最新文章

  1. [LeetCode 120] - 三角形(Triangle)
  2. Python中urllib2总结
  3. cisco switch命令大全
  4. (4)javascript的运算符以及运算符的优先级
  5. protoc文件生成cs文件
  6. C++系列总结——构造与析构
  7. [转]linux(centos)搭建SVN服务器
  8. Linux shell脚本基础学习详细介绍(完整版)
  9. 433M无线串口E30-TTL-100在农业物联网上的应用
  10. Atcoder ARC101 E 树dp
  11. opensource项目_最佳Opensource.com:法律
  12. 函数平移口诀_初三二次函数平移规律的口诀
  13. 具体解决VS“滴答数必须介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间”奇怪问题...
  14. 专题:Web App与Native App技术点大整合
  15. Ps 初学者教程,如何在图片中创造双色效果?
  16. SAP 创始人:打造“一连串的应用程序”
  17. 搭建Windows下基于Eclipse 的 PHP 开发环境
  18. dnsever 邮件记录
  19. 电容触摸按键实验(STM32F407)
  20. IDEA中使用Git,文件不同颜色代表的含义

热门文章

  1. 为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
  2. SAP 电商云 Spartacus UI delivery mode 页面设计的结构分析
  3. Linux Boot,Kernel 和 Service 介绍
  4. 关于问题 SAP ABAP ME2O 事物码如何(是否可以)打印发货单?如何自己找到答案
  5. Ngrx Store实现源代码的MemoizedSelector学习笔记
  6. 外部系统调用PO的webservice服务,往SAP系统发送数据,用的XISOAPAdapter的方式,出现错误
  7. SAP Spartacus activeBaseSite的设置逻辑
  8. Angular应用的index.html
  9. Spring 自动装配模式之构造函数装配方式
  10. 80行JavaScript代码实现的贪食蛇游戏,简约之美