码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-06-04 12:03:51      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:ios 7   碰撞效果的动画   心董儿   

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

        


#import "ICFCollisionViewController.h"

@interface ICFCollisionViewController ()

{

     UIImageView *dragonImageView;

    UIImageView*frogImageView;

}

@end


@implementation ICFCollisionViewController


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

{

   self = [superinitWithNibName:nibNameOrNil bundle: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


       

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

标签:ios 7   碰撞效果的动画   心董儿   

原文地址:http://blog.csdn.net/xin__dong/article/details/46356023

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!