欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记41 Animation动画_html/css_WEB-ITnose

程序员文章站 2022-05-10 08:43:27
...
IOS中的动画有以下几种:

第一种是为UIView的元素添加动画。
第二种是控制器的动画,比如之前介绍的导航控制器的用法。
第三种是Core Animation,这是一个很强大的框架,但是超出了这门课程的范围。
第四种是Dynamic Animation,这种动画基于设备的物理特性,比如晃动手机、调转方向等等。
本话来讲解第一种情况:

可以诸如frame、transform、和alpha这样的属性来实现动画效果。
可以调用UIView的方法来设置动画,这些方法的参数中有闭包可以帮助我们设置UIView的以上属性,闭包中的代码在调用方法时是立即执行的,有些方法还有参数名为completion的闭包,这个闭包中可以设置在Animation完成后的操作。比如如下方法的声明:

用法如下:

myView的透明度原本是1,现在我们调用了方法animateWithDuration,在animations中只进行了一个操作就是把myView设为全透明。第一个参数3.0的意义是这个透明的过程会在3秒内完成,第二个参数2.0的意义是这个动画会延迟2S。第三个参数options会在所有的动画方法中用到,它是一个枚举,指示不同的动画类型,后面会讲到。
animations就是我们需要进行的操作,completion是完成后的操作,刚才在定义中看到了completion闭包有一个布尔参数,所以直接使用$0来替代表示前面代码执行完毕,在这个闭包中要把myView从父视图集合中删除,做到真正的删除。
除了使用animateWithDuration修改view的属性之外,如果你要实现翻转之类的动画,靠着上面的三个属性是实现不了的,这时候还有专门的方法可供选择:

使用示例:

如果需要改变View的层次,使用下面的方法:

版权声明:本文为博主原创文章,未经博主允许不得转载。