UICollisionBehavior-动画效果:碰撞

翻译 2013年12月04日 17:51:30

1。碰撞

          需要确定边界线,使 增加了各动画行为(UIDynamicBehavior)的视图 在执行动画过程中 不能越界

                  translateReferenceBoundsIntoBoundary : YES (将参照视图的边界作为碰撞行为的侦测边界,即在参照视图中所有已增加了collisionBehavior的项在执行动画效果时,均不能越过参照视图的边界) 

                  - (void) addBoundaryWithIdentifier : (id<NSCopying>) identifier  fromPoint : (CGPoint) p1 toPoint : (CGPoint) p2 ;    // 自定义边界

2。collisionMode 碰撞模式

           UICollisionBehaviorModeItems :  between dynamic items

           UICollisionBehaviorModeBoundaries : between  every dynamic item and the boundaries

           UICollisionBehaviorModeEverything : above all , default value

3。<UICollisionBehaviorDelegate>

          myCollision.collisionDelegate = self ;

          - (void) collisionBehavior : (UICollisionBehavior*) paramBehavior  beganContactForItem : (id <UIDynamicItem>) paramItem  withBoundaryIdentifier : (id <NSCopying>) paramIdentifier  atPoint : (CGPoint) paramPoint    // 开始碰到边界时调用

          collisionBehavior : endedContactForItem : withBoundaryIdentifier : atPoint :   


e.g. 

         - (void) collisionBehavior : (UICollisionBehavior*) paramBehavior   beganContactForItem : (id <UIDynamicItem>) paramItem withBoundaryIdentifier : (id <NSCopying>) paramIdentifier  atPoint : (CGPoint) paramPoint  {
                NSString *identifier = (NSString *) paramIdentifier;  //边界标识符
                if ( [ identifier isEqualToString : @"boundaryIdentifier" ] ) {   //与之前定义的边界边识符相比较
                         [ UIView animateWithDuration : 1.0f  animations : ^{
                                  UIView *view = (UIView *) paramItem ;  //每个碰撞的视图
                                  view.backgroundColor = [ UIColor purpleColor ] ;
                                  view.alpha = 0.0f ;  //完全透明
                                  view.transform = CGAffineTransformMakeScale(2.0f, 2.0f) ;
                         } completion : ^(BOOL finished) {   //动画完成后
                                  UIView *view = (UIView *) paramItem;
                                  [ paramBehavior removeItem : paramItem ] ;
                                  [ view removeFromSuperview ] ;
                         } ] ;
                 }
    }    //最终效果:碰到边界时,活动视图会先变为purple色,然后慢慢消失(alpha=0.0)




相关文章推荐

动力碰撞

#import "ViewController.h"@interface ViewController ()UIDynamicAnimatorDelegate,UICollisionBehavio...

动画特效七:碰撞动画

这一节讲述的动画效果是碰撞动画,就是模拟或者仿真现实物体的碰撞效果。先看看效果图。 动画效果分析: 1. 有两个形式一样的View(自己和对手),所以我们可以考虑直接封装一个View。 2. ...

iOS开发- 点击通知栏回到顶部的动画效果

你可能经常会用到点击通知栏回到顶部的功能,那这么动画效果怎么实现呢?一开始博主也被误导了,用基础动画来写,麻烦不说,效果还不好,后来才知道原来系统提供了相应的方法,网上给出了好几种用法,还有种错误的用...

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

IOS开发-UIView之动画效果的实现方法(一)在开发APP中,我们会经常使用到动画效果。使用动画可以让我们的APP更酷更炫,最重要的是优化用户体验,但取决于动画的质量。像QQ、微信、新浪微博等AP...

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

原文   http://www.cnblogs.com/GarveyCalvin/p/4193963.htm 前言:在开发APP中,我们会经常使用到动画效果。使用动画可以让我们的A...
  • Dlg1992
  • Dlg1992
  • 2016年04月18日 21:52
  • 134

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

IOS开发-UIView之动画效果的实现方法(合集) 时间 2015-01-05 13:48:00  GarveyCalvin 原文  http://www.cnblogs.com/Garve...

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

UIView,animation

Cocos2d-x教程(4)-创建动画效果,TexturePacker工具

在游戏中,我们经常会看到鱼在游,人在跑,那么这些便是通过Cocos2d-x中的动画来实现的,一个动画是由精灵帧序列组成。下面笔者将教大家如何如何将多张图片打包到一起,如何利用打包好的图片生成一个动画。...

IOS开发-UIView之动画效果的实现方法

前言:在开发APP中,我们会经常使用到动画效果。使用动画可以让我们的APP更酷更炫,最重要的是优化用户体验,但取决于动画的质量。像QQ、微信、新浪微博等APP,动画效果就很好了,至少我很喜欢它们的动画...

手把手教你做安豆计算器(八)-动画效果

给计算器的结果计算添加动画效果,完成我们的第一个安卓应用。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UICollisionBehavior-动画效果:碰撞
举报原因:
原因补充:

(最多只允许输入30个字)