iOS动画篇:UIView动画

iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用。在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现。

UIView动画简介

UIView动画实质上是对Core Animation的封装,提供简洁的动画接口。

UIView动画可以设置的动画属性有:
1、大小变化(frame)
2、拉伸变化(bounds)
3、中心位置(center)
4、旋转(transform)
5、透明度(alpha)
6、背景颜色(backgroundColor)
7、拉伸内容(contentStretch)

UIview 类方法动画

1)动画的开始和结束方法

1.1 动画开始标记

第一个参数:动画标识
第二个参数:附加参数,在设置了代理的情况下,此参数将发送到setAnimationWillStartSelector和setAnimationDidStopSelector所指定的方法。大部分情况下,我们设置为nil即可。

1.2 结束动画标记

2)动画参数的设置方法

3)实例代码:

1、属性变化动画(以frame变化为例)

动画效果:

NormalAni.gif

2、转场效果动画(以Flip效果为例)

动画效果:

ScreenTransitionAni.gif

UIview Block动画

iOS4.0以后,增加了Block动画块,提供更简洁的方式来实现动画。

1)Block动画方法

1、最简洁的Block动画:包含时间和动画

2、带有动画完成回调的Block动画

3、可设置延迟时间和过渡效果的Block动画

UIViewAnimationOptions的枚举值如下,可组合使用:

4、Spring动画
iOS7.0后新增Spring动画(iOS系统动画大部分采用Spring Animation,适用于所有可被添加动画效果的属性)

5、Keyframes动画
iOS7.0后新增关键帧动画,支持属性关键帧,不支持路径关键帧

UIViewKeyframeAnimationOptions的枚举值如下,可组合使用:

各种运算模式的直观比较如下图:

图片来源网络.png

增加关键帧的方法:

6、转场动画
6.1 从旧视图转到新视图的动画效果

在该动画过程中,fromView 会从父视图中移除,并讲 toView 添加到父视图中,注意转场动画的作用对象是父视图(过渡效果体现在父视图上)。
调用该方法相当于执行下面两句代码:

6.2 单个视图的过渡效果

2)实例代码:

1、普通动画
下面三段代码都实现了相同的视图frame的变化,不同之处只在于其延迟时间、过渡效果和结束回调。

动画效果:

NormalAni.gif

2、Spring动画

动画效果:

SpringAni.gif

3、Keyframes动画
这里以实现视图背景颜色变化(红-绿-蓝-紫)的过程来演示关键帧动画。

动画效果:

KeyFramesAni.gif

4、转场动画
4.1 单个视图的过渡效果

动画效果:

TransitionAni.gif

4.2 从旧视图转到新视图的动画效果

动画效果:

ScreenTransitionAni.gif

1 7 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部