iOS 力学动画生成器UIKit Dynamics 之碰撞效果解说

UIKit Dynamic是iOS7 新增的一组类和方法。可赋予UIView逼真的行为和特征,不须要写动画效果那些繁琐的代码,让开发者可以轻松地改善应用的用户体验。一共同拥有6个可用于定制UIDynamicAnimator的类。这里先仅仅简介下碰撞的动画效果,即UICollisionBehavior。须要签订一个代理协议:UICollisionBehaviorDelegate。

其它效果,兴许更新,敬请期待。

注意:dragonImageView和frogImageView记得要初始化还有: UIDynamicAnimator、UIGravityBehavior、 UICollisionBehavior一定要声明成属性或者全局变量,否则不会产生动画效果!

#import "ICFCollisionViewController.h"

@interface
ICFCollisionViewController ()

{

UIImageView *dragonImageView;

UIImageView*frogImageView;

}

@end

@implementation ICFCollisionViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [superinitWithNibName:nibNameOrNilbundle:nibBundleOrNil];

if (self) {

}

return
self;

}

- (void)viewDidLoad

{

[superviewDidLoad];

// 初始化力学动画生成器

UIDynamicAnimator *animator = [[UIDynamicAnimatoralloc]initWithReferenceView:self.view];

// 创建重力下落效果的对象

UIGravityBehavior *gravityBehavior = [[UIGravityBehavioralloc]initWithItems:@[frogImageView,dragonImageView]];

//设置重力加速度。水平和竖直方向

[gravityBehavior setGravityDirection:CGVectorMake(0.0f, 0.3f)];

// 创建碰撞效果的对象

UICollisionBehavior* collisionBehavior = [[UICollisionBehavioralloc]initWithItems:@[frogImageView,dragonImageView]];

// 物体的碰撞模式共同拥有三种:UICollisionBehaviorModeItems(物体相互碰撞)

UICollisionBehaviorModeBoundaries(物体不相互碰撞。仅仅与边界碰撞)

UICollisionBehaviorModeEverything(既与物体碰撞又与边界碰撞)

[collisionBehavior setCollisionMode:UICollisionBehaviorModeEverything];

//此代码的作用是将self.view的边框作为碰撞边界,必须设置为YES,否则不会生成碰撞效果

collisionBehavior.translatesReferenceBoundsIntoBoundary =YES;

[animatoraddBehavior:gravityBehavior];

[animatoraddBehavior:collisionBehavior];

collisionBehavior.collisionDelegate =self;

}

-(void)collisionBehavior:(UICollisionBehavior *)behavior beganContactForItem:(id<UIDynamicItem>)item
withBoundaryIdentifier:(id<NSCopying>)identifier atPoint:(CGPoint)p

{

NSLog(@"開始碰撞时触发的方法");

}

-(void)collisionBehavior:(UICollisionBehavior *)behavior endedContactForItem:(id<UIDynamicItem>)item
withBoundaryIdentifier:(id<NSCopying>)identifier

{

NSLog(@"结束碰撞时触发的方法");

}

@end

时间: 2024-09-30 06:26:25

iOS 力学动画生成器UIKit Dynamics 之碰撞效果解说的相关文章

iOS 力学动画生成器UIKit Dynamics 之碰撞效果讲解

UIKit Dynamic是iOS7 新增的一组类和方法,可赋予UIView逼真的行为和特征,不需要写动画效果那些繁琐的代码,让开发人员能够轻松地改善应用的用户体验.一共有6个可用于定制UIDynamicAnimator的类,这里先只简单介绍下碰撞的动画效果,即UICollisionBehavior.需要签订一个代理协议:UICollisionBehaviorDelegate.其他效果,后续更新,敬请期待. #import "ICFCollisionViewController.h"

【iOS开发每日小笔记(三)】利用iOS7 UIKit Dynamics 仿Zaker客户端首页动态效果

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下(^_^).其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在

UIKit Dynamics入门

看E问文章时,发现了Dynamics,uikit动力,找了不错的入门文章. From:http://blog.csdn.net/baecheung/article/details/11911061 本文涉及到的WWDC2013 Session有 Session 206 Getting Started with UIKit Dynamics Session 221 Advanced Techniques with UIKit Dynamics 什么是UIKit动力学(UIKit Dynamics)

iOS交互式动画详解(上):iOS 10以下的实现

不久前结束的 WWDC 2016 Session 216: Advances in UIKit Animations and Transitions 介绍了 iOS 10 的新动画 API,让动画与交互无缝连接,这是「开发者的大事.大快所有人心的大好事」.两年前 objc.io 在 「交互式动画」 一文在探讨了这个话题,本文先来探讨 iOS 10 以下的系统对交互动画的支持,在 下篇 中深度解读 iOS 10 新 API. 交互动画类型 其实交互式动画在 iOS 系统里可以说是司空见惯的.在可交

iOS核心动画

iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CAL

iOS开发——动画OC篇&amp;所有常用动画总结

所有常用动画总结 先来装下B,看不懂没关系,其实我也看不懂-?? iOS provides several different frameworks for adding graphics and animations to your apps. UIKit is an Objective-C API that provides basic 2D drawing, image handling, and ways to animate user interface objects. Core G

IOS 动画专题 --iOS核心动画

iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CALayer常用属性 CALayer绘图 Core Animation 基础动画 关键帧动画 动画组 转场动画 逐帧动画 UIView动画封装目 录 基础动画 关

如何实现iOS图书动画-第2部分(上)

原文链接 : How to Create an iOS Book Open Animation: Part 2 原文作者 : Vincent Ngo 译文出自 : 开发技术前线 www.devtf.cn 译者 : kmyhy 欢迎回到iOS图书动画系列教程!在第一部分,我们学习了如何创建两个自定义的collection view layout并在图书书页中使用了阴影图层以使我们的App显得更加立体和真实. 在这一部分,我们将学习如何创建自定义的转场动画并通过捏放手势来打开一本书. 注意:感谢At

ios 学习动画的套路 (一)

你也肯定喜欢炫酷的动画! 在APP中,动画就是一个点睛之笔!可以给用户增加一些独特的体验感,估计也有许多的和我一样的,看着那些觉得不错的动画,也就只能流口水的孩子,毕竟~不知道从哪里下手去写!会连续的发两篇博客,总结一下iOS中动画的一个学习套路或者说是一个自己的学习的过程,以及当中出现的一些问题也会和大家分享. 一:从那里开始?这里 Quartz2D! 在我的学习过程中,我是先从 Quartz2D 开始学习的,它里面的贝塞尔曲线在我们创造精美的动画的过程中是必不可少的,Quartz 2D 它首