StrokeStart与StrokeEnd动画
通过修改CAShapeLayer的StrokeStart与StrokeEnd的值来实现画图动画
效果图:

代码部分:
#import "ViewController.h" @interface ViewController ()
@property (nonatomic, strong) CAShapeLayer *shapeLayer; // 形状图层
@property (nonatomic, strong) NSTimer *timer; // 定时器
@end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; // 创建圆形贝塞尔曲线
UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(, , , )]; self.shapeLayer = [CAShapeLayer layer]; // 创建形状图层
self.shapeLayer.frame = CGRectMake(, , , ); // 设置尺寸
self.shapeLayer.position = self.view.center; // 设置位置
self.shapeLayer.fillColor = [UIColor whiteColor].CGColor; // 设置填充颜色
self.shapeLayer.lineWidth = .f; // 设置路径线条宽度
self.shapeLayer.strokeColor = [UIColor redColor].CGColor; // 设置路径颜色 // 设置路径起点和终点
self.shapeLayer.strokeStart = ;
self.shapeLayer.strokeEnd = ; // 产生关联
self.shapeLayer.path = circle.CGPath; [self.view.layer addSublayer:self.shapeLayer]; // 创建定时器
_timer = [NSTimer scheduledTimerWithTimeInterval:.f
target:self
selector:@selector(getAnimation)
userInfo:nil
repeats:YES];
} - (void)getAnimation
{
// 注意, strokeEnd的值一定要比strokeStart大, 不然不会显示出来
CGFloat valueOne = arc4random() % / .f;
CGFloat valueTwo = arc4random() % / .f; // 通过改变strokeStart和strokeEnd来实现动画
self.shapeLayer.strokeEnd = valueOne > valueTwo ? valueOne : valueTwo;
self.shapeLayer.strokeStart = valueTwo < valueOne ? valueTwo : valueOne;
}
github:https://github.com/RinpeChen/StrokeStartAndStrokeEndAnimationDemo
StrokeStart与StrokeEnd动画的更多相关文章
- IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性
http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有 ...
- 通过布赛尔曲线以及CAShapeLayer的strokeStart 、strokeEnd 属性来实现一个圆形进度条
#import <UIKit/UIKit.h> @interface CircleProgressView : UIView /**起始值(0-1)*/ @property(nonatom ...
- iOS酷炫动画效果合集
iOS酷炫动画效果合集 源码地址 https://github.com/YouXianMing/Animations 效果绝对酷炫,包含了多种多样的动画类型,如POP.Easing.粒子效果等等,虽然 ...
- iOS之UI--CAShapeLayer
关于CAShapeLayer 内容大纲: CAShapeLayer简介 贝塞尔曲线与CAShapeLayer的关系 strokeStart和strokeEnd 动画 用CAShapeLayer实现进度 ...
- iOS 中 CAShapeLayer 的使用( 等待删除的博文)
等待删除. 1.CAShapeLayer 简介 1.CAShapeLayer继承至CALayer,可以使用CALayer的所有属性值 2.CAShapeLayer需要与贝塞尔曲线配合使用才有意义 3. ...
- CAShapeLayer 与贝塞尔曲线
一 CAShapeLayer 简介 1,CAShapeLayer继承至CALayer,可以使用CALayer的所有属性 2,CAShapeLayer需要与贝塞尔曲线配合使用才有意义:单独使用毫无意义 ...
- CAShapeLayer实现圆形进度条效果
一.CAShapeLayer简单介绍: .CAShapeLayer继承至CALayer,能够使用CALayer的全部属性值 2.CAShapeLayer须要与贝塞尔曲线配合使用才有意义 3.使用CAS ...
- 关于CAShapeLayer
关于CAShapeLayer 内容大纲: CAShapeLayer简介 贝塞尔曲线与CAShapeLayer的关系 strokeStart和strokeEnd 动画 用CAShapeLayer实现进度 ...
- CAShapeLayer的使用
CAShapeLayer的使用 1.CAShapeLayer 简介 1.CAShapeLayer继承至CALayer,可以使用CALayer的所有属性值 2.CAShapeLayer需要与贝塞尔曲线配 ...
随机推荐
- poi简单案例
//poi api 操作 public static void main(String[] args) { // TODO Auto-generated method stub // 创建一个工作 ...
- 转:hadoop知识整理
文章来自于:http://tianhailong.com/hadoop%E7%9F%A5%E8%AF%86%E6%95%B4%E7%90%86.html 按照what.how.why整理了下文章,帮助 ...
- 转:MongoDB调查总结
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值 ...
- xamarin提供在线检查.net代码是否支援xamarin,ios,android
大概是多少比你想的更多的移动.我们很高兴地宣布一个新的在线服务Xamarin NET移动扫描仪-扫描您的编译.NET代码的兼容性与Xamarin.iOSXamarin.Android是,Windows ...
- 使用read(),write(),seekg(),seekp()实现二进制方式文件随机存取
// binary.cpp -- binary file I/O #include <iostream> #include <fstream> #include <iom ...
- 部分实用的SQL语句
一.在数据库创建表格的SQL语句 1,创建一个link表格,包含属性:lid 主键,title 标题, imgpath 图片地址 , url 网址 , info 说明, isshow 显示1 ...
- Android中如何将dp,dip,sp与px相互转化
Android中有很多度量单位:比如常用的dp,dip,sp,px等,有时候需要将他们相互转换,有下面非常方便的方法: 比如sp转换成px: TypedValue.applyDimension(Typ ...
- Nmap扫描教程之DNS服务类
Nmap扫描教程之DNS服务类 Nmap DNS服务类 DNS(Domain Name System,域名系统)的作用就是将主机名解析为相应IP地址的过程. 通常主机域名的一般结构为:主机名.三级域名 ...
- tomcat7源代码Bootstrap
tomcat的启动从bootstrap的main方法開始,在main方法中主要是做了三件事,调用init方法初始化自己.调用catalinaDaemon对象 的setAwait方法设置它的await属 ...
- 转 [教程] Unity3D中角色的动画脚本的编写(二)
在上一篇,我们介绍了有关Animation这个类中的部分方法,我后来想了想,这么介绍也不是个办法(其实有些方法我自己也没用过),该介绍点实际的东西了,毕竟我们是要做东西出来的.那好 ...