CAShapeLayer的使用

1、CAShapeLayer 简介


  • 1、CAShapeLayer继承至CALayer,可以使用CALayer的所有属性值
  • 2、CAShapeLayer需要与贝塞尔曲线配合使用才有意义
  • 3、使用CAShapeLayer与贝塞尔曲线可以实现不在view的drawRect方法中画出一些想要的图形
  • 4、CAShapeLayer属于CoreAnimation框架,其动画渲染直接提交到手机的GPU当中,相较于view的drawRect方法使用CPU渲染而言,   其效率极高,能大大优化内存使用情况
 
 
 
效果:
 
 
2、贝塞尔曲线与 CAShapeLayer 的关系

  • 1、CAShapeLayer中有Shape这个单词,顾名思义,它需要一个形状才能生效
  • 2、贝塞尔曲线可以创建基于矢量的路径
  • 3、贝塞尔曲线给CAShapeLayer提供路径,CAShapeLayer在提供的路径中进行渲染,路径会闭环,所以路径绘制出了Shape
  • 4、用于CAShapeLayer的贝塞尔曲线作为path,其path是一个首尾相接的闭环的曲线,即使该贝塞尔曲线不是一个闭环的曲线
 
一阶贝塞尔曲线
二阶贝塞尔曲线
三阶贝塞尔曲线
四阶贝塞尔曲线
五阶贝塞尔曲线
 
然后是通过代码直接体现贝塞尔曲线和CAShapeLayer之间的关系:
 
 
3、StrokeStart 与 StrokeEnd 动画

  • 1、将ShapeLayer的fillColor设置成透明背景
  • 2、设置线条的宽度(lineWidth)的值
  • 3、设置线条的颜色
  • 4、将strokeStart值设定成0,然后让strokeEnd的值变化触发隐式动画
 
 
然后为了能实现圆形进度条的效果:
效果就是:
 
将上面的strokeStart也设置,但是注意:strokeStart必须要小于strokeEnd,否则会不画出线的情况。
 

最新文章

  1. 从 HTTP 到 HTTPS - IIS 部署免费 HTTPS
  2. R语言-处理异常值或报错的三个示例
  3. mvc中Url.RouteUrl或者Html.RouteLink实现灵活超链接,使href的值随路由名称或配置的改变而改变[bubuko.com]
  4. Java-BlockingQueue的使用
  5. 第四章 面向对象与IO操作
  6. Linux 下模拟Http 的get or post请求(curl和wget两种方法)
  7. mysql事务与mysql储存引擎
  8. firefox 扩展开发笔记(三):高级ui交互编程
  9. CodeForces Round #301 Div.2
  10. 干货:Android 源码使用心得分享
  11. Linux虚拟机创建后如何进行登录(Windows Azure)
  12. Day2 数据类型
  13. PYTHON线程知识再研习C---线程互斥锁
  14. android 转帖留链接
  15. iOS 4.2 SDK安装
  16. JWT(JSON Web Token) 多网站的单点登录,放弃session
  17. log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息
  18. 让Linux系统开机速度更快的方法
  19. Deep Learning(深度学习)学习笔记整理系列 一
  20. docker端口映射,批量删除容器

热门文章

  1. mysql replication常见错误整理
  2. 在myeclipse中使用查找功能
  3. Caffe 不同版本之间layer移植方法
  4. HDU-5536 Chip Factory,又见字典树,好题+1!
  5. 九度oj 题目1159:坠落的蚂蚁
  6. Tomcat基础配置(一)
  7. Method for Estimating the Number of Concurrent Users
  8. hdu4336 Card Collector(概率DP,状态压缩)
  9. 【HDOJ5978】To begin or not to begin(概率)
  10. Codeforces Round #288 (Div. 2) E. Arthur and Brackets [dp 贪心]