Block动画:

 @interface BlockViewController ()
@property (weak, nonatomic) IBOutlet UIView *playView; @end @implementation BlockViewController - (void)viewDidLoad { [super viewDidLoad];
// Do any additional setup after loading the view from its nib.
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - 简单动画
- (IBAction)easyBlock:(id)sender {
// 第一个参数:设置动画时长
// 第二个参数:动画要显示的效果
// 第三个参数:动画完成时进行的事情
__weak typeof (self)weakSelf = self;
[UIView animateWithDuration:2.0 animations:^{
weakSelf.playView.center = weakSelf.view.center;
} completion:^(BOOL finished) { NSLog(@"位置变了");
}];
}
#pragma mark - 复杂动画
- (IBAction)complexBlock:(id)sender {
// 参数1:时长
// 参数2:动画延迟时间
// 参数3:动画的枚举值
// 参数4:要实现的动画效果
// 参数5:动画完成是要进行的事情
__weak typeof (self)weakSelf = self;
[UIView animateWithDuration:5.0f delay:1.0f options:UIViewAnimationOptionOverrideInheritedOptions animations:^{
weakSelf.playView.frame = CGRectMake(, , , );
} completion:^(BOOL finished) {
NSLog(@"变小了");
}];
}
#pragma mark - 关键帧动画
- (IBAction)keyFramesBlock:(id)sender {
// 参数1:时长
// 参数2:动画的延迟时间
// 参数3:枚举值
// 参数4:开始动画
__weak typeof(self)weakSelf = self;
[UIView animateKeyframesWithDuration:3.0f delay:1.0f options:UIViewKeyframeAnimationOptionCalculationModeLinear animations:^{ // 在这个里面需要加一个方法,即创建block的关键帧
// 参数1:帧动画的开始时间
// 参数2:帧动画的持续时间
// 参数3:实现的效果
[UIView addKeyframeWithRelativeStartTime: relativeDuration:0.5 animations:^{
// 实现的效果
weakSelf.playView.frame = CGRectMake(, , , );
}];
} completion:^(BOOL finished) {
NSLog(@"哈哈哈");
}];
}

Spring动画简介:

代码展示:

 @interface SpringViewController ()
// 设置一个ImageView属性
@property (weak, nonatomic) IBOutlet UIImageView *springImageView; @end @implementation SpringViewController - (void)viewDidLoad {
[super viewDidLoad];
self.title = @"spring 动画";
// Do any additional setup after loading the view from its nib.
// 参数1: 动画时长
// 参数2: 延迟时间
// 参数3: 类似弹簧的效果值 0 - 1
// 参数4: 初始化spring的一个速度
// 参数5: spring动画的枚举值
// 参数6: 开始动画
// 参数7: 动画完成
__weak typeof(self) weakSelf = self;
[UIView animateWithDuration:5.0f delay:0.1f usingSpringWithDamping:1.0 initialSpringVelocity: options:UIViewAnimationOptionOverrideInheritedOptions animations:^{
weakSelf.springImageView.center = weakSelf.view.center;
} completion:^(BOOL finished) {
NSLog(@"tantnatan");
}];
}

Block动画 和 Spring动画的更多相关文章

  1. spring动画-iOS-备

    最后停止在终点: 如果给位置移动的动画添加弹簧效果,那么视图的运动轨迹应该像下图中展现的一样: 这会使你的动画看起来更逼真.更真实.更贴近现实.在某些情况下带给用户更好的用户体验.那么让我们开始学习吧 ...

  2. ReactNative之从“拉皮条”来看RN中的Spring动画

    上篇博客我们聊了RN中关于Timing的动画,详情请参见于<ReactNative之结合具体示例来看RN中的的Timing动画>本篇博客我们将从一个“拉皮条”的一个动画说起,然后来看一下R ...

  3. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  4. iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)

    一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...

  5. 核心动画(UIView封装动画)

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...

  6. iOS&nbsp;动画总结—UIView动画

    1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要 ...

  7. iOS动画1 — UIView动画

    iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画 ...

  8. ios基础动画、关键帧动画、动画组、转场动画等

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

  9. 核心动画(UIView封装动画)-转

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持. 执行动画所需要的工作由UIView类自动完成 ...

随机推荐

  1. 关于js封装框架类库之选择器引擎(二)

    在上篇介绍了选择器的获取标签.id.类名的方法,现在我们在上篇基础上继续升级 1.问题描述:上篇get('选择器')已经实现,如果get方法里是一个选择器的父元素,父元素是DOM对象,那么如何获取元素 ...

  2. 注解方式实现Spring声明式事务管理

    1.编写实体类 public class Dept { private int deptId; private String deptName; public int getDeptId() { re ...

  3. Java中单态设计模式

    Java中单态设计模式 2011-09-23 16:38:46|  分类: Java |  标签:technology!  |举报|字号 订阅     此博文是转自新浪博客中一名叫做"俊俊的 ...

  4. Servlet运行过程详解

    比如,在浏览器地址栏输入http://ip:port/web01/hello step1,浏览器依据ip,port建立与servlet容器(容器同时也是一个简单的web服务器)之间的连接. step2 ...

  5. 将默认首页设置成index.do的方法

    变态欺骗法,今天csdn一个前辈的,学习了,公司服务器是weblogic的,也可以欺骗. 但是我又非常迫切.非常盼望.非常渴望使用index.do做首页,怎么办? Tomcat中用一段注释: When ...

  6. 【android开发】小说阅读器

    新人开发理念 1 activity 是每个功能页面的入口 2 动画效果需要配合资源文件中,动画的定义 3 文件的读取是有权限控制的 4 布局应该尽量简单,这样才能让程序跑的飞快 前记 重新开始一个新的 ...

  7. Codecs是以plugin的形式被调用的(显示中文的codec plugin文件是qcncodecs4.dll),可静态载入和动态载入

    作为非英语国家人员开发的类库,QT有充分的理由优先考虑支持Unicode和各国自定义字库编码.大家也知道了QT对软件Internationalization有一套完整的开发模型,包括专门为此写的lin ...

  8. angulajs 当input使用 bootstrap的email类型时,如果是无效的email格式,则ng-model无效的情况

    当使用bootstrap的如下input时 <input type="email" ng-model="userid"> 如果输入的内容是无效的em ...

  9. SpringBoot Quickstart

    SpringBoot Intro SpringBoot是顺应现在微服务(MicroServices)理念而产生的一个微框架(同类微框架可供选择的还有Dropwizard), 用来构建基于Spring框 ...

  10. Sicily-1153 解题报告

    一.原题中文大意. 1      2       3      4       5      6         7     8 9     10       11    12      13    ...