Block动画 和 Spring动画
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动画的更多相关文章
- spring动画-iOS-备
最后停止在终点: 如果给位置移动的动画添加弹簧效果,那么视图的运动轨迹应该像下图中展现的一样: 这会使你的动画看起来更逼真.更真实.更贴近现实.在某些情况下带给用户更好的用户体验.那么让我们开始学习吧 ...
- ReactNative之从“拉皮条”来看RN中的Spring动画
上篇博客我们聊了RN中关于Timing的动画,详情请参见于<ReactNative之结合具体示例来看RN中的的Timing动画>本篇博客我们将从一个“拉皮条”的一个动画说起,然后来看一下R ...
- iOS开发UI篇—核心动画(UIView封装动画)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)
一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...
- 核心动画(UIView封装动画)
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...
- iOS 动画总结—UIView动画
1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要 ...
- iOS动画1 — UIView动画
iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画 ...
- ios基础动画、关键帧动画、动画组、转场动画等
概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...
- 核心动画(UIView封装动画)-转
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持. 执行动画所需要的工作由UIView类自动完成 ...
随机推荐
- 在unity中用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放
在场景中添加一个Plan,Camera,Directional Light,Cube.添加两个脚本scrollerScirpt(挂在Camera),CubeDragScript(挂在Cube上). 1 ...
- eclipse修改编译路径
右击项目--properties--java build path--点击source,修改最下方的路径即可
- HDU2018-母牛的故事
描述: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? 代码: 第n年的牛,等于第n-1年的牛(已有的)+第n-3年 ...
- android五种布局模式
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对 ...
- IOS 学习笔记(1) 视图UIViewController
1.UIViewController *newController=[[UIViewController alloc] initWithNibName:@"XXX" bundle: ...
- Java Socket 入门1
由程序逻辑可以看到 这是一个 客户端和服务端一对一聊天的程序 首先由服务端说第一句话然后对话才开始 且只能客户端一行话 服务端再一行话 这样往复进行 客户端若想不等服务端回应继续说话是不行的 服 ...
- 自定义标签(TagSupport )
转载:http://zhuhuide2004.iteye.com/blog/555737 这个图太好了,拿下来,标注一下:
- How to access the properties of an object in Javascript
Javascript has three different kinds of properties: named data property, named accessor property and ...
- 第三章 线性表(C#实现)
1.线性表 概念::零个或多个数据元素的有序序列. 描述: 2.线性表的抽象数据类型: ADT线性表 Data:线性表的数据对象集合为{a1,a2,...,an},每个元素的类型均为DataType. ...
- Android多线程断点续传下载
这个月接到一个项目.要写一个像360助手一样的对于软件管理的APP:当中.遇到了一个问题:多线程断点下载 这个 ,因为之前没有写过这方面的应用功能.所以.不免要自学了. 然后就在各个昂站上收索并整理了 ...