iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations
本节将介绍CALayer与Core Animation基础,找找通过Layer操作动画的感觉,你将学到如何移动、隐藏显示Layer的方法
animation properties
Layer中很多动画属性的使用方法与View类似,例如frame、position、opacity等,另外还提供了border、shadow等新属性,接下来我们来看看Layer中给了我们什么可以动画变化的属性
Position and size
bound
Layer的范围position
Layer在父Layer中的的位置,可以分别修改x、y
-transform
改变中国属性可以移动、缩放、旋转Layer,甚至可以加入3D动画
Border
borderColor
边框颜色borderWidth
边框宽度cornerRadius
角的弧度,可以实现圆角
Shadow
shadowOffset
改变这个属性可以改变阴影与Layer的远近shadowOpacity
改变这个属性可以改变阴影的显示shadowPath
改变Layer shadow的形状,可以加入各种各样的3D效果shadowRadius
改变阴影的模糊程度,在模拟物体朝向屏幕运动或远离屏幕的动画中使用较多
Contents
content
改变这个属性可以改变Layer内含的TIFF、PNG原始数据mask
改变这个属性可以改变图像上的遮盖opacity
改变内容的透明度
以上的属性就已经足够你实现一些基于Layer的动画了,下面我们通过Demo练习一下
First Layer Animation
这次我们的Demo利用Layer Animation替换之前登录页面Demo中的View Animation
我们从heading开始,在viewWillAppear
及viewDidAppear
方法中删除有关代码(对于控件初位置的设定在动画中实现)
创建动画
我们在在viewDidAppear
方法中添加动画
let flyRight = CABasicAnimation(keyPath: "position.x") flyRight.fromValue = -view.bounds.size.width/2 flyRight.toValue = view.bounds.size.width/2 flyRight.duration = 0.5
CoreAnimation中的对象都是一些简单的数据模型,我们只需实例化并设置相应的数据即可
一个CA实例描述了具体的Layer动画,你可以随时使用这个动画
这些动画实例并不急于具体的Layer,你可以在需要的时候重用代码,每次添加动画时都会创建它的一份拷贝
对于一个CA对象,你可以很方便的通过keypath参数具体说明动画的属性
随后我们设置了fromValue
、toValue
属性调整了动画的开始与结束
最后我们设置了动画进行的时间
把动画添加到layer上
通过上面的代码我们已经创建了动画,现在我们来把动画添加到具体的layer上
heading.layer.addAnimation(flyRight, forKey: nil)
我们这里调用的addAnimation(_: forKey:)方法用于将CA对象创建一个拷贝并且应用在layer上,第二个参数forKey仅仅用于动画的使用者,通过这个参数可以实现改变、停止这个动画等操作。
iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations相关推荐
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...
- iOS 自定义转场动画初探
最近项目刚迭代,正好闲下来捣鼓了一下iOS的自定义转场的效果.闲话不多说,直接开始上代码吧.(ps:请忽略实际的转场效果,关注技术本身呢哦.pps:主要是转场的动画做的比较low啦!) 1.首先定义一 ...
- iOS:CALayer核心动画层
CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView, ...
- iOS动画:UIView动画和CALayer动画(CABasicAnimation、CAKeyframeAnimation的使用)
iOS中的动画有两种实现方式,一种是UIView来实现动画,另一种动画是通过CALayer来实现,下面介绍两种动画的简单实现: 一.UIView动画的实现 UIView使用Context来实现动画 关 ...
- iOS - Core Animation 核心动画
1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...
- iOS 自定义转场动画浅谈
代码地址如下: http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差 ...
- ios uiview动画_iOS UIView动画
ios uiview动画 In this tutorial, we'll be animating our UI Views in various ways in the iOS Applicatio ...
- iOS核心动画以及UIView动画的介绍
我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些 ...
- iOS之深入探究动画渲染降帧
一.为什么要对动画降帧? 众所周知,刷新频率越高体验越好,对于 iOS app 的刷新频率应该是越接近越 60fps 越好,主动给动画降帧,肯定会影响动画的体验.但是另一方面,我们也知道动画渲染的过程 ...
最新文章
- JavaWeb-Spring中注解大全与详解
- 新版本springboot-整合mybatis
- Android 从AndroidManifest获取meta-data
- java控制图片移动_多线程控制图片移动
- mysql5.7.19zip,mysql5.7.19zip详细安装过程和配置
- CVPR2021 最具创造力的那些工作成果!或许这就是计算机视觉的魅力!
- 【服务器风扇静音】确定风扇线序定义的通用方法——以IBM SystemX 3630 M4为例
- 某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧
- 8in1模拟器v2模拟飞行_重新想象飞行模拟器:过去和现在
- 墨干V1.1.0: 新一代结构化编辑器的雏形
- HtmlUnit入门教程
- The s:form tag declares that it accepts dynamic attributes but does not implemen
- 「找一找」考你眼力的时候到了!
- 2018年全国多校算法寒假训练营练习比赛(第五场)The Biggest Water Problem
- 湖北省2020计算机技能大赛,【2018省赛专题报道】计算机信息技术学院在2018年湖北省职业技能大赛“计算机网络与信息安全技术”赛项中获奖...
- Excel中经纬度数据转换公式
- 创建一个HTML5网页,HTML5 创建一个Web网页便利贴
- 上随体导数的一些理解
- android 字符串翻译,Android Lint:如何忽略区域语言环境字符串文件中缺少的翻译警告,该文件故意仅覆盖某些默认翻译?...
- Android高德地图的使用,狠详细!手把手!(地图+定位+逆地理编码+输入提示+Poi搜索)