完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
之前看了一个别人做的汉堡动画的动效,非常有意思,然后在花瓣网上找了一个差不多的,自己尝试着做了一下。
说一下,这个动效主要用的就是路径动效,都是在CGPath上操作的。虾面开始讲解制作过程。 准备工作 两个必备软件 Sketch用户绘制需要的图形和路径 将Sketch绘制的图形导出sag格式的文件,通过PaintCode转换成路径代码 1,用Sketch绘制图形,一个圆圈和里面的勾,注意,勾和圆圈的路径要连起来的。具体的Sketch使用教程就不说了,自己问度娘。我也是自己慢慢摸索出来的。 2,将Sketch绘制的图形以SVG格式导出,Sketch界面右下角就能看到 3,将SVG文件拖到PaintCode,就会自动生成路径代码 4,现在开始代码部分 先新建一个UIButton类,先贴出代码,代码不是很多,虾面开始一一解释 4.1 创建半透明白色圆环作为基底 4.2 新建一个CAShaperLayer对象CAShapeLayer *checkShapeLayer; 配置checkShapeLayer的参数 4.3 后面设定按钮点击动画 4.3.1 这四个参数分别是“Check”和“Circle”这两种不同形状时的strokeStart和strokeEnd的位置,有效值为0~1 4.3.2 创建CABasicAnimation strokeStart和strokeEnd,为什么 @”strokeStart”和@”strokeEnd”能创建动画,官方文档上说了,这两个属性是Animation的,可以创建动画的,建议大家看看CAShapeLayer的官方文档,不长,而且容易看懂。 strokeStart.toValue 动画的最终位置 strokeStart.duration 动画之行的时长 strokeStart.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.25 :0.4 :0.3 :1.6];动画的步速 这是一种通过贝塞尔曲线的方式来调整速度的方式,比如先快后慢,或者先慢后快。看下面的文章就容易理解了。 在CALayer的基础上扩展的一个方法, animation.fromValue = [self.presentationLayer valueForKey:animation.keyPath];从动画演示层presentationLayer 获取之前的状态,并且设定为fromValue 再设定toValue,和animation开始执行动画 |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-7 02:49 , Processed in 0.400684 second(s), Total 42, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191