UICollisionBehavior-动画效果:碰撞

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)




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值