iOS 动画之Spring动画、Block动画、GIF图
Spring动画
Spring动画是一种特殊的动画曲线,自从iOS7之后开始被广泛应用在系统动画中。所谓的Spring动画就是动画在执行的过程中会有一个放大的效果,然后在回去。 创建Spring动画用到了下面的一个方法
- (void)springAnimation{
//Damping:阻尼值0 - 1、阻尼值越小动画越明显
//Velocity:初始速度
[UIView animateWithDuration:2.0 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:20options:UIViewAnimationOptionRepeat animations:^{self.redView.frame = CGRectMake(100, 300, 200, 200);self.redView.backgroundColor =[UIColor blackColor];
} completion:nil];
}
复制代码
Block动画
Block简单动画
示例:在Block的回调方法内改变动画的颜色
[UIView animateWithDuration:5 animations:^{
//需要改变的属性
self.redView.backgroundColor = [UIColor cyanColor];
}];
复制代码
Block复杂动画
相比较Block的简单动画来说Block的复杂动画能够在动画完成后,对动画做一些其他的操作 示例:在动画过程中改变将视图的颜色改为黄色,在动画结束的时候将视图的颜色改为红色。
[UIView animateWithDuration:2.0 animations:^{
self.redView.backgroundColor = [UIColor yellowColor];
} completion:^(BOOL finished) {if (finished) {//动画结束self.redView.backgroundColor = [UIColor redColor];}
}];
复制代码
GIF动图
简单来说,gif图片就是将一组图片放在一起,以极快的速度切换图片,这样就能实现一个动画的效果。西面来看具体的做法。
- 首先,我们创建一个可变数组把我们需要用到的图象存储起来。
NSMutableArray *imageArray = [NSMutableArray array];for (int i = 1; i < 14; i++) {UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"1-%d.tiff",i]];[imageArray addObject:image];}
复制代码
- 然后创建一个imageView来显示图片
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];imageView.center = self.view.center;imageView.animationImages = imageArray;imageView.animationDuration = 0.5;//动画执行的时间imageView.animationRepeatCount = 10;//动画重复次数[self.view addSubview:_imageView];//开启动画[imageView startAnimating];
复制代码
在实际使用的过程中,通常我们会在不同的地方,来执行动画属性的操作,具体情况按照需求来实现。
转载于:https://juejin.im/post/5c1a0dfae51d450c2c0800ae
iOS 动画之Spring动画、Block动画、GIF图相关推荐
- iOS 动画原理与实现--帧动画、逐帧动画、CALayer
这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式. 什么是动画 动画,顾名思义,就是能"动"的画. 人的眼睛对图像有短暂的记 ...
- iOS动画详解(学习动画看这一篇就够了)
2019独角兽企业重金招聘Python工程师标准>>> 原文出处:wu大维 动效设计一直是iOS平台的优势,良好的动效设计可以很好地提升用户体验.而动画则是动效的基础支撑.本动画将从 ...
- iOS动画系列之五:基础动画之缩放篇旋转篇Swift+OC
这一篇主要介绍基础动画之缩放和旋转.这些基本操作分享完之后,我想想可以找个稍微复杂一点点的动画做做啦. 这篇继续基础篇,分享一下缩放和旋转.因为整体思路和平移基本上没有变化,加上源代码里面也有OC版本 ...
- IOS开发基础之核心动画 基础动画、关键帧、组动画案例
IOS开发基础之核心动画 基础动画.关键帧.组动画案例 案例源码在我的主页里.实现效果图 // // ViewController.m // 30-核心动画 // // Created by 鲁军 o ...
- iOS动画系列之四:基础动画之平移篇
就像咱们之前说的,所有的动画都是在CALayer上面的.所以在做动画之前我们就要先建立一个CALayer,然后把动画作用在自己创建的这个CALayer上.如果不知道CALyer是啥,可以看看前面的分享 ...
- iOS教程:移动终端游戏动画设计的12个原则
在移动设备用户体验设计领域,微妙精致的动画已成为非常重要的设计元素.为任何对象添加动画并不简单,需要观察研究在真实世界中物体是如何在时空中运动的,需要设计者关注细节,并且具有耐心.适当的动画能够提供清 ...
- 关东升的《iOS实战:图形图像、动画和多媒体卷(Swift版)》上市了
关东升的<iOS实战:图形图像.动画和多媒体卷(Swift版)>上市了 承蒙广大读者的厚爱我的<iOS实战:图形图像.动画和多媒体卷(Swift版)>京东上市了,欢迎广大读者提 ...
- iOS开发 tabbar自定义转场动画
1.小记 关于自定义转场动画,只要你理清他的"套路",你就可以随心所欲地自定义了. 大体思路就是:遵守对应的代理协议,然后设置对应的代理,实现代理方法,这个代理方法要返回的值就是你 ...
- iOS 手机淘宝加入购物车动画分析
iOS 手机淘宝加入购物车动画分析 1.最终效果 仿淘宝动画 2.核心代码 _cartAnimView=[[UIImageView alloc] initWithFrame:CGRectMake(_p ...
最新文章
- 事关人类生存?为什么要探寻AI系统的可解释性?
- ubuntu装机必备
- Vue.js的复用组件开发流程
- IntelliJ IDEA的配置优化
- boost::container模块实现基本分配的测试程序
- tampermonkey怎么不能用了_iPhone12无线充电不能用怎么办-苹果12无线充电失效原因...
- 客户端通过SSH private key 登录远端服务器
- java 当前时间格式_JAVA中获取当前系统时间及格式转换
- 软件设计师12-数据库(数据操作)
- 让java类继承TBase进行序列化
- 深度学习: 推进人工智能的梦想
- linux学习之使用piranha配置高可用集群
- 如何提取html 信息,从html中提取信息?
- 共读四步法:看见正向核心的力量—欣赏式探询共读会
- HTML5表单新特征简介与举例
- 香格里拉是如何策划成功的?
- CloudFoundry 环境上的 Java 应用开发如何指定 build pack
- 计算机积分符号,积分符号积分区间怎么打出来
- STM32 cube vcp虚拟USB
- ShareSDK分享