本节将介绍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开始,在viewWillAppearviewDidAppear方法中删除有关代码(对于控件初位置的设定在动画中实现)

创建动画

我们在在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参数具体说明动画的属性
随后我们设置了fromValuetoValue属性调整了动画的开始与结束
最后我们设置了动画进行的时间

把动画添加到layer上

通过上面的代码我们已经创建了动画,现在我们来把动画添加到具体的layer上

    heading.layer.addAnimation(flyRight, forKey: nil)

我们这里调用的addAnimation(_: forKey:)方法用于将CA对象创建一个拷贝并且应用在layer上,第二个参数forKey仅仅用于动画的使用者,通过这个参数可以实现改变、停止这个动画等操作。

iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations相关推荐

  1. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  2. iOS 自定义转场动画初探

    最近项目刚迭代,正好闲下来捣鼓了一下iOS的自定义转场的效果.闲话不多说,直接开始上代码吧.(ps:请忽略实际的转场效果,关注技术本身呢哦.pps:主要是转场的动画做的比较low啦!) 1.首先定义一 ...

  3. iOS:CALayer核心动画层

    CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView, ...

  4. iOS动画:UIView动画和CALayer动画(CABasicAnimation、CAKeyframeAnimation的使用)

    iOS中的动画有两种实现方式,一种是UIView来实现动画,另一种动画是通过CALayer来实现,下面介绍两种动画的简单实现: 一.UIView动画的实现 UIView使用Context来实现动画 关 ...

  5. iOS - Core Animation 核心动画

    1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...

  6. iOS 自定义转场动画浅谈

    代码地址如下: http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差 ...

  7. ios uiview动画_iOS UIView动画

    ios uiview动画 In this tutorial, we'll be animating our UI Views in various ways in the iOS Applicatio ...

  8. iOS核心动画以及UIView动画的介绍

    我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些 ...

  9. iOS之深入探究动画渲染降帧

    一.为什么要对动画降帧? 众所周知,刷新频率越高体验越好,对于 iOS app 的刷新频率应该是越接近越 60fps 越好,主动给动画降帧,肯定会影响动画的体验.但是另一方面,我们也知道动画渲染的过程 ...

最新文章

  1. JavaWeb-Spring中注解大全与详解
  2. 新版本springboot-整合mybatis
  3. Android 从AndroidManifest获取meta-data
  4. java控制图片移动_多线程控制图片移动
  5. mysql5.7.19zip,mysql5.7.19zip详细安装过程和配置
  6. CVPR2021 最具创造力的那些工作成果!或许这就是计算机视觉的魅力!
  7. 【服务器风扇静音】确定风扇线序定义的通用方法——以IBM SystemX 3630 M4为例
  8. 某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧
  9. 8in1模拟器v2模拟飞行_重新想象飞行模拟器:过去和现在
  10. 墨干V1.1.0: 新一代结构化编辑器的雏形
  11. HtmlUnit入门教程
  12. The s:form tag declares that it accepts dynamic attributes but does not implemen
  13. 「找一找」考你眼力的时候到了!
  14. 2018年全国多校算法寒假训练营练习比赛(第五场)The Biggest Water Problem
  15. 湖北省2020计算机技能大赛,【2018省赛专题报道】计算机信息技术学院在2018年湖北省职业技能大赛“计算机网络与信息安全技术”赛项中获奖...
  16. Excel中经纬度数据转换公式
  17. 创建一个HTML5网页,HTML5 创建一个Web网页便利贴
  18. 上随体导数的一些理解
  19. android 字符串翻译,Android Lint:如何忽略区域语言环境字符串文件中缺少的翻译警告,该文件故意仅覆盖某些默认翻译?...
  20. Android高德地图的使用,狠详细!手把手!(地图+定位+逆地理编码+输入提示+Poi搜索)

热门文章

  1. java导出word表格_使用PowerDesigner16.5 逆向数据库 导出word文档
  2. java线程方法_Java线程的三种方式
  3. 洛谷P1816 忠诚 题解
  4. 【BZOJ】P2144 跳跳棋
  5. 基于Spark MLlib平台的协同过滤算法---电影推荐系统
  6. ssh、sftp、scp免密码登录
  7. 【20171115中】nmap 使用脚本爆破telnet密码
  8. 【机器学习实战】第1章 机器学习基础
  9. dagger2 依赖注入
  10. ListView position