再做一次可爱的猫咪switch开关动画吧~

原本三个月之前的残留项目,至今日才终于写完,这是何等的艰辛呀由于中间闲的三个月的荒废时间,也不想画而不想码代码.不过我领悟了程序猿的真谛,那就是千万不要荒废你的头脑,哪怕一个小小的项目,脑子是越码越厉害,闲话不多说了,开始讲解一下这个动画咋滴画出来的

# ****开始之前
所用到的类:
CAGradientLayer;

  • 可以生成两个或者更多颜色平滑渐变.
  • colors : 存放渐变颜色的数组
  • locations: 渐变颜色的区间分布
  • startPoint: 映射locations中的第一个位置,用单位向量表示.
  • endpoint: 映射locations中的最后一个位置,用单位向量表示.
  • type: 默认值是kCAGradientLayerAxial,表示按像素均匀变化。除了默认值也无其它选项。

CAShapeLayer;

  • CALayer 的子类,但比CALayer更灵活,可以画出各种图形.

CAKeyframeAnimation;

  • 关键帧动画,前边博文有详细讲到,在这就不细说了.

# ****开始画画

DrawHelper此类存放画好的path:


images
images

JSCatSwitch此类存放layer属性:


images
images

在点击事件里触发动画:

images
images

在controller里调动:


images
images

# ****主要画画方法讲解
UIBezierPath 里主要方法讲解:

//画二元曲线,一般和moveToPoint配合使用

  • addQuadCurveToPoint:controlPoint;
    //以某个中心点画弧线
  • addArcWithCenter:radius:startAngle:endAngle:clockwise;
    //以三个点画一段曲线,一般和moveToPoint配合使用
  • addCurveToPoint:controlPoint1:controlPoint2;
    //根据矩形框的内切圆画曲线
  • bezierPathWithOvalInRect:

# ****最终显示效果

如果你喜欢这个动画效果,请在我的github点个star吧,谢谢~

images
images
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,696评论 4 61
  • 前言 本文只要描述了iOS中的Core Animation(核心动画:隐式动画、显示动画)、贝塞尔曲线、UIVie...
    GitHubPorter阅读 9,018评论 7 11
  • 前言 此本中收录一些较复杂统计图案例的实现分析,希望能给需要的朋友带来灵感。 曲线动态图 我们可以看到上图的动图是...
    進无尽阅读 6,418评论 0 1
  • 我们经常听到这样的说法: 男人是理性的,女人是感性的。 我相信很多人跟我一样,虽然很熟悉这句话,但可能并不知道这句...
    诺曼底的救赎阅读 10,593评论 0 2
  • 夏天的天空明晃晃, 金子一般明晃晃, 为什么为什么明晃晃? 天空里的太阳 透出光芒明晃晃。 夏天的大海明晃晃, 玻...
    然宝空间阅读 1,868评论 1 0

友情链接更多精彩内容