Swift爬坑记-CAKeyframeAnimation略解

本文介绍了Swift中使用CAKeyframeAnimation创建关键帧动画的过程,通过实例代码展示了如何设置keyPath、values等属性,并揭示了layer.position坐标系的细节,帮助开发者理解如何实现视图的动画效果。

感觉swift实现动画的方法比OC丰富

但对于我这种菜鸟来说真的多坑,不是我说,就算点进去看官方方法解释也是一脸懵逼

今天我就研究了一下其中一种方法CAKeyframeAnimation(),传说中的关键帧(key)动画!Maya也是这样的!好了,咳咳,扯远了


直接上代码说吧!

let moves = CAKeyframeAnimation()  //不是我吹,这个moves的变量名起的是真的好(谁扔的砖头?!)

moves.keyPath = "position.x" //注意了!坑来了!!首先说一下这个KeyPath也可以和上面的初始化方法写在一起就是let moves = CAKeyframeAnimation(keyPath: "position.x")

但是为了填keypath这个坑,就多写一行吧。这个变量的类型是string,这就是第一个坑了,刚接触的人谁知道里面要填什么?暂时解释不了,这个坑先填一半,等下再来填


moves.values = [200,190,200,210,200,190,200,210,200] //这个还好理解一点,但得就这上一行来说,这个变量values的类型是个数组,实际的作用是记录关键帧的每一key的动作,比如在现在这段代码中,这个数组里的数值就是position.x每一key的取值

let textField = UITextField(frame: CGRectMake(100,200,200,30)) //随便写个view,毕竟这个是一行就能看到的,其他东西还得写点别的才能看到

self.view.addSubview(textField) //但愿你在controller里面试这段代码

textField.layer.addAnimation(moves, forKey: "xixihaha") //首先说说这个forKey吧,这个和上面讲的key不是同一个东西大家能理解吧?这个就有种字典的感觉了,毕竟可能有复杂的动画会有很多animation,每个animation都要有个独一无二的key来标记,之后操作起来方便,今天是用不上了,我就随便写点东西。

现在注意,我要填坑了!!上面说到的keyPath传了值“position.x”其实就是用来接在textField.layer的后面的,它们连起来就是textField.layer.position.x,然后通过values的一个个值赋上去,就形成了动画关键帧,然后系统会自动帮你脑补两个关键帧中间发生的移动动画,一般都是直来直去,不要期待太多

坑填完了,现在来多讲一点内容

悟性高的同学可能已经明白了,这个keypath不仅可以传position.x还可以传y啊,还可以就传position

但这个时候,values的数组中的内容就要变了,变成point的类型


好了恭喜看到最后的兄弟们,其实还有一个坑,也许大家也发现了,我在values中传的值和textfield的x坐标好像偏了一些

也不知道对大家来说算不算坑,就是这个layer.position并不是view的左上角的坐标,而是正中间的坐标所以x=200才是这个textfield的正中间

那么最后大家就知道了,我的这一小段代码实现的是一个textfield在横轴上+-10的抖动动画


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值