iOS pop动画之衰减动画的基本使用

衰减动画

- (void)viewDidLoad {

[super viewDidLoad];

[self initCircleBtn];

}

- (void)initCircleBtn {

// 实例化手势,并最终将手势添加到圆形按钮上

  UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)];

// 实例化圆形按钮

UIButton *circleBtn = [[UIButton alloc]init];

circleBtn.bounds = CGRectMake(0, 0, 100, 100);

circleBtn.center = self.view.center;

circleBtn.backgroundColor = [UIColor redColor];

circleBtn.layer.cornerRadius = CGRectGetWidth(circleBtn.frame) / 2;

[circleBtn addGestureRecognizer:pan];

[circleBtn addTarget:self action:@selector(handleDown:) forControlEvents:UIControlEventTouchDown];

[self.view addSubview:circleBtn];

}

- (void)handlePan:(UIPanGestureRecognizer *)recognizer {

CGPoint translation = [recognizer translationInView:self.view];

recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);

[recognizer setTranslation:CGPointMake(0, 0) inView:self.view]; // 这句比较重要,因为handlePan:会持续调用,如果不把上一次调用该方法产生的位移清零,按钮会移动得很快

// 松手时,启动衰减动画

if (recognizer.state == UIGestureRecognizerStateEnded) {

CGPoint velocity = [recognizer velocityInView:self.view]; // 获取松手时,手势在控制器view的速度

POPDecayAnimation *popAnimation = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPosition]; // 实例化衰减动画,该衰减动画作用于Position

[popAnimation setVelocity:[NSValue valueWithCGPoint:velocity]]; // 设置衰减动画的初始速度

[recognizer.view pop_addAnimation:popAnimation forKey:@"suibian"]; // 添加衰减动画到圆形按钮

}

}

时间: 2024-08-28 12:48:36

iOS pop动画之衰减动画的基本使用的相关文章

使用 Facebook开源动画库 POP 实现真实衰减动画

1. POP动画基于底层刷新原理.是基于CADisplayLink,1秒钟运行60秒,接近于游戏开发引擎 @interface ViewController () @property (nonatomic,strong)CADisplayLink *displayLink; @property (nonatomic)      NSInteger     count; @end - (void)viewDidLoad { [superviewDidLoad]; self.displayLink

使用 Facebook 开源动画库 POP 实现真实衰减动画

1. POP 动画基于底部刷新原理,是基于CADisplayLink,1秒钟执行60秒,接近于游戏开发引擎 @interface ViewController () @property (nonatomic,strong)CADisplayLink *displayLink; @property (nonatomic)      NSInteger     count; @end - (void)viewDidLoad { [superviewDidLoad]; self.displayLink

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个

IOS开发-UIView之动画效果的实现方法(合集)

http://www.cnblogs.com/GarveyCalvin/p/4193963.html 前言:在开发APP中,我们会经常使用到动画效果.使用动画可以让我们的APP更酷更炫,最重要的是优化用户体验,但取决于动画的质量.像QQ.微信.新浪微博等APP,动画效果就很好了,至少我很喜欢它们的动画,让我使用起来感觉很顺畅,心情很开朗.本文会介绍UIView效果的实现方法,非核心动画. 一.使用UIView类实现动画 基本写法,代码必须放在Begin和Commit之间: [UIView beg

iOS中的几种动画模式(iOS动画)

iOS中有许许多多的动画方式今天先给大家介绍最简单的两种:头尾式动画和帧动画 一. 所谓头尾式动画,顾名思义,就是在需要动画的代码开始的时候设置开始动画,在需要动画的代码结束的时候结束动画,这就是简单的头尾式动画,二话不多说,上代码: //开始动画 [UIView beginAnimations:nil context:nil]; //这里加需要动画的代码 //结束动画 [UIView commitAnimations]; 二. 帧动画,相信对做flash的人来说帧动画相当熟悉,相信大家都记得小

IOS开发核心动画篇---核心动画简介

iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core Animation是跨平台的,可以用在Mac OS X和iOS平台. Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.不阻塞主线程,可以理解为在执行动画的时候还能点击(按钮). 要注意的是,Core Animation是直接作用

iOS动画1 — UIView动画

iOS动画1 — UIView动画 iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画.UIView动画封装在UIView的Category中,主要实现一些简单和常用的动画.UIView动画是对核心动画进行了一层封装,所以最终动画还是通过Core Animation的接口实现. 主要的动画效果都可以通过UIView动画和Core Animation

iOS开发UI篇—核心动画(基础动画)

iOS开发UI篇—核心动画(基础动画) 一.简单介绍 CAPropertyAnimation的子类 属性解析: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue 如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态.但

iOS开发UI篇—核心动画(转场动画和组动画)

iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点 UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果 属性解析: type:动画过渡类型 subtype:动画过渡方向 startProgress:动画起点(在整体动画的百分比) endProgress:动画终点(在整体动画的百分比)