美文网首页
UIDynamic学习笔记-1

UIDynamic学习笔记-1

作者: c_xiaoqiang | 来源:发表于2015-06-25 20:32 被阅读91次

UIDynamic是苹果IOS7才开始使用的一种技术,是一种物理引擎,实现例如重力,碰撞等现象。

Dynamic初试:实现简单的重力,弹性碰撞效果
UIDynamicAnimator:物理引擎,可以向里面添加重力,弹性碰撞效果
UIGravityBehavior:重力行为
UICollisionBehavior: 弹性碰撞行为
UIDynamicItemBehavior :自定义属性(弹性,密度,摩擦力,旋转,阻力)


简单代码实现

@implementation ViewController
{
  UIDynamicAnimator *_animator;
  UIGravityBehavior *_gravity;
    UICollisionBehavior *_collision;
    UIDynamicItemBehavior *_itemDynamic;
}

- (void)viewDidLoad {

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIView * square = [[UIView alloc] initWithFrame:CGRectMake(180, 0, 150, 150)];
    square.backgroundColor = [UIColor redColor];
    [self.view addSubview:square];
    UIView * line = [[UIView alloc] initWithFrame:CGRectMake(0, 400, 200, 30)];
    line.backgroundColor = [UIColor blueColor];
    [self.view addSubview:line];
    _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    //创建重力行为
    _gravity = [[UIGravityBehavior alloc] initWithItems:@[square]];
    //创建弹性碰撞
    _collision = [[UICollisionBehavior alloc] initWithItems:@[square]];
    //默认边界是否被使用
    _collision.translatesReferenceBoundsIntoBoundary = YES;

 CGPoint rightPoint = CGPointMake(line.frame.origin.x + line.frame.size.width, line.frame.origin.y);
    NSLog(@"x = %f y = %f", rightPoint.x, rightPoint.y);
    //添加弹性碰撞范围
    [_collision addBoundaryWithIdentifier:@"line" fromPoint:line.frame.origin toPoint:rightPoint];
    _itemDynamic = [[UIDynamicItemBehavior alloc] initWithItems:@[square]];
 _itemDynamic.elasticity = 0.9; //设置弹性
   _itemDynamic.density = 0.5;//设置密度
  _itemDynamic.friction = 0;//设置摩擦力
   _itemDynamic.resistance = 0.9;//设置阻力(相对于滑行来说)
    _itemDynamic.allowsRotation = YES;//是否允许旋转
   _itemDynamic.angularResistance = 0.9;
    [_animator addBehavior:_gravity];
    [_animator addBehavior:_collision];

}

相关文章

  • UIDynamic学习笔记-1

    UIDynamic是苹果IOS7才开始使用的一种技术,是一种物理引擎,实现例如重力,碰撞等现象。 Dynamic初...

  • iOS开发拓展篇—UIDynamic(简单介绍)

    iOS开发拓展篇—UIDynamic(简单介绍) 一、简单介绍 1.什么是UIDynamic UIDynamic是...

  • 谈谈iOS中的动力学!!!!

    UIDynamic物理仿真 下面介绍一下各种属性 一、简单介绍 1.什么是UIDynamic 2.物理引擎的价值 ...

  • iOS物理仿真

    ————————————【 iOS—UIDynamic 】————————————— 一、简单介绍 1.什么是UI...

  • IOS 物理动画之碰撞、重力

    UIDynamic物理引擎UIDynamic是IOS7引入的一项新技术。他包括UIGravityBehavior:...

  • UIDynamic

    简介 UIDynamic是iOS 7之后新添加的一些物理仿真动画库,包含在UIKit框架中。 UIDynamic中...

  • UIDynamic

    UIDynamic 中的三个重要概念 •Dynamic Animator:动画者,为动力学元素提供物理学相关的能力...

  • UIDynamic

    重力行为 gravity 吸附行为 snap 推动行为 刚性附加 弹性附加 碰撞检测

  • UIDynamic

    一、概述 UIDynamic定义:UIDynamic是从iOS7开始引入的一种新技术,隶属于UIKit框架可以认为...

  • UIDynamic

    物理仿真器 UIDynamicAnimator的常见方法 -(void)addBehavior:(UIDynami...

网友评论

      本文标题:UIDynamic学习笔记-1

      本文链接:https://www.haomeiwen.com/subject/qfreqttx.html