博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CABasicAnimation属性动画的基本用法
阅读量:4946 次
发布时间:2019-06-11

本文共 3144 字,大约阅读时间需要 10 分钟。

---恢复内容开始---

初始化一个按钮

lazy var loginButton = UIButton()  //懒加载属性//设置 loginButton 按钮属性func  setupUI() {        loginButton.frame =  CGRect(x: 20, y: 230, width: view.frame.width - 20 * 2, height: 30)        loginButton.backgroundColor = UIColor.cyan        loginButton.setTitle("登录", for: [])        view.addSubview(loginButton)}

 

添加一个位置动画

let animation = CABasicAnimation() // 属性 /// MARK: - 位置动画 func positionAnimation() {                animation.keyPath = "position" //设置动画实例对象的效果                  let positionX = loginButton.frame.origin.x + 0.5 * loginButton.frame.size.width                  let positionY = loginButton.frame.origin.y + 0.5 * loginButton.frame.size.height + 100                  /// 使loginButton 按钮向下平移100         animation.toValue = NSValue(cgPoint: CGPoint(x: positionX, y: positionY))         animation.duration = 2.0  //动画执行周期         /// 保持动画结束之后的状态         animation.fillMode = kCAFillModeForwards         animation.isRemovedOnCompletion = false                  loginButton.layer.add(animation, forKey: nil) //添加动画到layer层         }

 添加一个缩放动画

func scaleAnimation() {        animation.keyPath = "transform.scale.x" //设置动画实例对象的效果            animation.fromValue = 1.0        animation.toValue = 0.8                animation.duration = 2.0  //动画执行周期                //保持动画结束之后的状态        animation.fillMode = kCAFillModeForwards        animation.isRemovedOnCompletion = false                loginButton.layer.add(animation, forKey: nil) //添加动画到layer层            }

添加一个旋转动画

func rotationAnimation() {                animation.keyPath = "transform.rotation" //设置动画实例对象的效果                animation.toValue = 3.14 / 2  //旋转角度,可以使用 M_PI之类的                animation.duration = 2.0  //动画执行周期                //保持动画结束之后的状态        animation.fillMode = kCAFillModeForwards        animation.isRemovedOnCompletion = false                loginButton.layer.add(animation, forKey: nil) //添加动画到layer层            }

 

添加一个淡入淡出动画

func opacityAnimation() {        // Opacity 属性和alpha属性类似,通过设置 0~1.0的浮点数字可以实现透明效果,默认值为0,表示初试状态为隐藏        animation.keyPath = "opacity" //设置动画实例对象的效果                animation.fromValue = UIColor.cyan.cgColor                animation.toValue = 1.0                animation.duration = 5.0  //动画执行周期                //保持动画结束之后的状态        animation.fillMode = kCAFillModeForwards        animation.isRemovedOnCompletion = false                loginButton.layer.add(animation, forKey: nil) //添加动画到layer层            }

 添加一个阴影渐变动画

func shadowOpacityAnimation() {                //阴影渐变        loginButton.layer.shadowColor = UIColor.red.cgColor        loginButton.layer.shadowOpacity = 0.5                animation.keyPath = "shadowOffset" //设置动画实例对象的效果                animation.toValue = NSValue(cgSize: CGSize(width: 0, height: 3))                animation.duration = 2.0  //动画执行周期                //保持动画结束之后的状态        animation.fillMode = kCAFillModeForwards        animation.isRemovedOnCompletion = false                loginButton.layer.add(animation, forKey: nil) //添加动画到layer层            }

以上只是部分使用部分属性完成了最基本的属性动画,当然还有更多的属性 比如颜色,边框,圆角等等属性可以使用,最主要的就是通过改变keyPath来实现,就不一一作介绍了。

 

转载于:https://www.cnblogs.com/metersj/p/7064018.html

你可能感兴趣的文章
【洛谷p1983】车站分级
查看>>
数组中重复的数字
查看>>
ARMV7-M数据手册---Part B :System Level Architecture---B1 System Level Programmers’ Model
查看>>
ASP.NET MVC用户登录(Memcache存储用户登录信息)
查看>>
pair<>结构体模版的用法
查看>>
HTML5 桌面提醒 (只适用chrome)
查看>>
Android 即时音视频解决方案1——环信
查看>>
STL——迭代器的概念
查看>>
设置用户ID和设置组ID
查看>>
Delphi中Format字符串说明
查看>>
门控时钟-概述 ----- 转载
查看>>
node.js&mongodb&express 搭建个人博客系统
查看>>
[洛谷 P1402] 酒店之王|网络流
查看>>
Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project
查看>>
网站登录密码的安全性问题小结(转)
查看>>
滑雪小结
查看>>
bs4的学习
查看>>
andriod mobile 安装debian
查看>>
移植Debian到Android(转)--用于文件系统制作参考
查看>>
MVC之ViewData.Model
查看>>