zoukankan      html  css  js  c++  java
  • 贝塞尔曲线 & CAShapeLayer & Stroke 动画 浅谈

    转载自:http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/qiaoqiaoqiao2014/article/details/46928787

    1.CAShapeLayer简介

     1.1CAShapeLayer继承于CALayer,可以使用CALayer的所有属性值;

       1.2CAShapeLayer需要贝塞尔曲线配合使用才有意义(也就是说才有效果)

       1.3使用CAShapeLayer(属于CoreAnimation)与贝塞尔曲线可以实现不在view的drawRect(继承于CoreGraphics走的是CPU,消耗的性能较大)方法中画出一些想要的图形

       1.4CAShapeLayer动画渲染直接提交到手机的GPU当中,相较于view的drawRect方法使用CPU渲染而言,其效率极高,能大大优化内存使用情况

    2.CAShapeLayer使用

       2.1代码展示

     

     

      

     

      

     

    1.贝塞尔曲线与CAShapeLayer的关系

       1.1CAShapeLayer需要一个形状才能生效,贝塞尔曲线可以创建基于矢量的路径,进而可以给CAShapeLayer提供路径,路径会闭环。

       1.2贝塞尔曲线作为CAShapeLayer的path,其path是一个首尾相接的闭环的曲线。

    2.实际应用

        2.2画椭圆

     


         2.2画矩形,画圆形的方法和上边的一致,只是画图时调用的方法不一致而已。

    3.注意:贝塞尔曲线与CAShapeLayer的frame值互不干扰,贝塞尔曲线只不过是要放在CAShapeLayer层上而已,所以CAShapeLayer的frame.size不能小于贝塞尔曲线的frame.size,masksToBounds是CAShapeLayer的一个属性,禁止贝塞尔曲线的路径超出CAShapeLayer的frame范围。

    4.StrokeStart与StrokeEnd的用法

       4.1用法步骤:

            4.1.1将ShapeLayer的fillColor设置成透明色

            4.1.2设置边缘线的宽度

            4.1.3设置边缘线的颜色

            4.1.4将strokeStart值设为0,让strokeEnd的值变化,进而触发隐式动画

            4.1.5采用计时器让其变化

        4.2事例应用

         

         

    效果图,此效果图是渐变滑动的,类似于扣扣登陆的等待转动视图,大家可以去我的博客资源里面去下载demo哦。

            

     

          

     

  • 相关阅读:
    css中span元素的width属性无效果原因及多种解决方案
    CentOS、Ubuntu、Debian三个linux比较异同
    linux系统中/etc/syslog.conf文件解读
    /proc/interrupts 和 /proc/stat 查看中断的情况
    网卡优化RPS/RFS
    关于Linux网卡调优之:RPS (Receive Packet Steering)
    rsync详解之exclude排除文件
    Linux rsync 同步实践
    CentOS 6.3下rsync服务器的安装与配置
    解决linux下/etc/rc.local开机器不执行的原因
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5294459.html
Copyright © 2011-2022 走看看