美文网首页iOS developeriOS的高大上魔法🔮学习重力学
iOS UIKit动力学(二)重力(UIGravityBehav

iOS UIKit动力学(二)重力(UIGravityBehav

作者: JerryLMJ | 来源:发表于2016-11-07 16:27 被阅读525次

    iOS UIKit力学(一)基本介绍(目录)

    构造

    UIGravityBehavior * gravity = 
    [[UIGravityBehavior alloc] initWithItems:@[_dynamicItem1View]];
    [_animator addBehavior:gravity];
    

    通过效果可以看出_dynamicItem1View以自由落体下落。现实世界中重力加速度为g(9.8m/s²),在iOS系统中也符合这一定律,只不过单位不是m而是

    重力的设置

    • 设置重力向量
      我们可以通过重力向量一次性设置重力的方向和大小
    // 重力向量
    // 默认值为(0.0,1.0),表示以(1000点/s²)的重力加速度向下运动
    // 构建:CGVector gravityDircetion = {1,1};
    // {dx, dy}  dx、dy分别表示重力向量的x轴、y轴坐标
    @property (readwrite, nonatomic) CGVector gravityDirection;
    
    UIGravityBehavior * gravity = [[UIGravityBehavior alloc] initWithItems:@[_dynamicItem1View]];
    CGVector gravityDircetion = {2,2};
    [gravity setGravityDirection:gravityDircetion];
    [_animator addBehavior:gravity];
    
    • 设置方向和大小
      重力方向和大小的设置还有以下属性和方法:
    // 重力的方向,以弧度表示
    @property (readwrite, nonatomic) CGFloat angle;
    // 重力的大小
    @property (readwrite, nonatomic) CGFloat magnitude;
    // 同时设置重力的方向和大小
    -(void)setAngle:(CGFloat)angle magnitude:(CGFloat)magnitude;
    
    UIGravityBehavior * gravity = [[UIGravityBehavior alloc] initWithItems:@[_dynamicItem1View]];
    gravity.angle = M_PI;
    gravity.magnitude = 2;
    [_animator addBehavior:gravity];
    

    弧度angle值遵循坐标系:

    版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!

    相关文章

      网友评论

        本文标题:iOS UIKit动力学(二)重力(UIGravityBehav

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